以下の例で構成されたコードをDisplay IdentityTask results in Popupに変更しています。dojo/-base/array.mapから配列を返す前にdojo/request/xhrが終了するのを待って
var deferred = identifyTask.execute(identifyParams).addCallback(function (response) {
return arrayUtils.map(response, function (result) {
var feature = result.feature;
dojoXhr("/trails/trailPopupUses.action",{
query:{
parkName: feature.attributes.PARK_NAME,
trailName: feature.attributes.TRAIL_ASSOC,
},
preventCache: true
}).then(function(data) {
useString = data;
return feature;
}, function(err) {
featureResultsContent.innerHTML = "An unexpected error occurred: " + error;
});
});
});
app.map.infoWindow.setFeatures([deferred]);
私の問題は、私はidentifyTask.execute
がdeferred
変数の初期化を完了するまでapp.map.infoWindow.setFeatures([deferred]);
が実行されない保証する方法を見つけ出すことができないです。私はいくつかの場所で.then()
を使用しようとしましたが、動作させることができませんでした。 arrayUtils.map
関数は、が期待する配列features
を返します。