我正在尝试构建一个应用程序,其中 vpn 连接起着关键作用,因此如果用户断开与其 vpn 的连接,如果 vpn 以某种方式再次连接,我想继续尝试查询或尝试对要素图层应用编辑。这是我迄今为止尝试过的
const testFeatureLayer = new FeatureLayer({ url: LAYERDETAILS.TEST.url})
var query = testFeatureLayer.createQuery();
query.where = '1=1'
query.outFields = ['*']
from(testFeatureLayer.queryFeatures(query)).pipe(
retry({
count:50,
delay: 1000, // 2 second delay between retries
resetOnSuccess: true
}),
catchError((error) => {
console.error('Failed after all retries:', error);
return throwError(() => error);
})
).subscribe({
next: (response) => {
console.log('Query response:', response);
},
error: (error) => {
console.error('Final error:', error);
}
});
这是 Esri 要素图层; https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
此方法查询特征->(方法)__esri.FeatureLayer.queryFeatures(query?: __esri.Query | __esri.QueryProperties, options?: __esri.FeatureLayerQueryFeaturesOptions): Promise<__esri.FeatureSet>
我尝试过使用 from 或 with of 来做到这一点,但我没有运气。
我使用
of
和 map
运算符模拟 API 调用,我发现只有一件事需要更改,那就是 throwError
可以返回错误,而不是值。
...
catchError((error: any) => {
console.error('Failed after all retries:', error);
return throwError(() => new Error(error)); // <- changed here!
})
...