有3個功能第一個是我的承諾。如何在返回數據之前等待所有承諾解決?
fnGetIps : function() {
return new Promise(function(resolve, reject) {
var err = [], path = getBaseUrl();
restGet(path + NAMES, function (res, edges) {
if (res === undefined) {
reject("Unable to get data");
} else {
resolve(edges);
}
});
});
},
第二個是我用我的承諾。
fnGetData: function(obj){
var promise_holder;
for (property in obj) {
if (obj.hasOwnProperty(property)) {
if(condition){
promise_holder = fngetip();
}
if(condition2){
//some other code
}
}
}
promise_holder.then(function (ifChildren) {
obj.children = ifChildren;
}, function (err) {
console.error(err);
});
}
最後在那裏我打電話fnGetData
TopoTree : function(children) {
var treeArray;
for (i = 0; i < children[i]; i++) {
fnGetData(children[i]);
}
treeArray.push(treeData);
return treeArray;
},
我不想返回TreeArray
所有的承諾都解決的fnGetData
前一個功能。
如何等待所有承諾先解決然後返回數據?
我不能使用promise.All
,因爲我沒有promise_holder
在topotree
範圍或我在錯誤的方向思考?
你應該重新考慮您的變量名。他們很混亂。 (http://www.makinggoodsoftware.com/2009/05/04/71-tips-for-naming-variables/) – Sukima
他們是sudo的名字。 –