0

ファイルをサーバーにアップロードして約束を返す関数があります。各プロミスがいつ終了するかを確認し、「ファイル名の展開に成功しました..」のログを表示したいと思います。

約束の順序は気にしませんが、 Q.all() は、すべての約束が終了した場合にのみ返されるか、失敗したときにすばやく失敗するため、役に立ちません。

私の約束の1つが終了するたびにチェックしてログを表示するものを書きたいと思います。各ファイルは大きくなる可能性があるため、これまでにアップロードされたものをユーザーに通知したいと考えています。

ファイルの 1 つが失敗すると、ユーザーには次のようなものが表示されます。

Successfully deployed file1.txt
Successfully deployed file2.txt
Failed deploying file3.txt
4

2 に答える 2

3

ファイル (またはプロミス) を単純にループしてみませんか?

var files = ['file1.txt', 'file2.txt'/*, ...*/];
files.forEach(function (file) {
  uploadFile(file).done(function () {
    console.log('Successfully deployed ' + file);
  }, function () {
    console.log('Failed deployed ' + file);
  });
});
于 2013-10-15T12:43:08.120 に答える