geoJSONオブジェクトを反復する約束関数を作成しようとしていますが、そのアドレスに格納されているデータを呼び出すためにプレースホルダ値プロパティとともに格納されているURL-esqueプロパティを使用しています。 JSONのイテレーション自体が機能しているが、私の値が実際に持ち込まれる前に私は、それが解決戻すだきちんと時間にメインの約束を得るように見えることはできません。非同期呼び出しに依存するJSONによる繰り返し
//Here is one feature in my geoJSON object
{
"type": "Feature",
"properties": {
"name": "AC4",
"url": "/*Removed*/",
"values": {
"DA_T": {
"ORD": "station:|slot:/Drivers/NiagaraNetwork/S_1563/B_1964/B1964_SSC2/points/AC4/MixedAirTemp",
"value": "placeholder",
}
}
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[102.0,-59.0],
[102.0,-73.5],
[67.5,-73.5],
[67.5,-59.0]
]
]
}},
//This is what I currently have for my iterating function
function jsonValueFill(json, valueName) {
return new Promise (function(resolve, reject){
var i = 0;
var k = json.features.length;
while (i<k) {
console.log('iteration: ' + i)
if (json.features[i].properties.values.valueName != undefined){
numFromPoint (json.features[i].properties.values.valueName.ORD)
.then(function(output){
json.features[i].properties.values.valueName.value = output
});
};
i++;
if(i == k) {resolve(json)}
}
})
};
numFromPointは、私が引っ張って作成された約束の関数でありますORDと呼ばれる内部アドレスからの値であり、期待どおりに動作することを確認しました。しかし、オブジェクトを反復処理した後、オブジェクトの状態をよく確認するためにsetTimeout(function(){console.log(testJson)}、6000)を追加しても、valueプロパティは設定されていません。
これは完全に機能し、あなたは命を救う人です!助けをありがとう:) – TravisH