NodeJS等待所有异步命令完成
问题描述:
我正在使用'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