1
我正在使用'Q'庫在NodeJS中進行異步調用。 但是在其中一個用例中,我需要defer
promise
,直到完成所有異步調用。NodeJS等待所有異步命令完成
public someFunction(files: string[]) : Q.Promise<string> {
var needSomeInfo;
var defer = Q.defer;
for (var i = 0; i < files.length; i++) {
_this.readFile(files[i]).then(function(res) {
needSomeInfo += res.Info;
j++;
if (j == files.length) {
defer.resolve(needSomeInfo);
}
}).fail(function(err) {
j++;
if (j == resultFiles.length) {
defer.resolve(needSomeInfo);
}
//this is kinda stupid. I need to wait till all file calls are done because of consolidated info I need from them
});
}
return defer.promise;
}
感謝您的解決方案,但我早想通了一點:) – Reddy