1
NodeJSで非同期呼び出しを行うには 'Q'ライブラリを使用しています。 しかし、いずれかのユースケースでは、すべての非同期呼び出しが完了するまでpromise
までdefer
にする必要があります。すべての非同期コマンドが完了するまで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