The watch method on the connectionStatus property of a StreamLayerView does not execute in a SceneView.
上次发布: August 6, 2018ArcGIS API for JavaScript
漏洞 ID 编号
BUG-000115331
已提交
July 13, 2018
上次修改时间
June 5, 2024
适用范围
ArcGIS API for JavaScript
找到的版本
4.8
操作系统
Windows OS
操作系统版本
10.0 64 Bit
状态
Will Not Be Addressed
开发团队已考虑过该问题或请求,并决定不会解决该问题。 问题的“其他信息”部分可能包含进一步说明。
附加信息
This appears to be app specific.
2D and 3D handle resolving the layerView slightly differently. The app appears to work for 2D because the layerView is resolved before the StreamLayer is connected. In the `whenLayerView` block, the `connectionStatus` is initially disconnected. The watcher later fires when the status changes to `connected`. For 3D, this isn't the case so the watcher never fires. This means that the `processConnect` function is never invoked.
The application shouldn't assume that the initial state of the `connectionStatus` is `disconnected`. In the `mapView.whenLayerView(layerView)` block you first need to check what the `connectionStatus` is currently set to, e.g.:
mapView.whenLayerView(streamLayer).then(function(layerView) {
streamLayerView = layerView;
if (layerView.connectionStatus === "connected") {
processConnect();
}
layerView.watch("connectionStatus", function(value) { ... }
If you call `streamLayerView.disconnect()`, the watcher event does get fired.