私は雄弁なjavascriptを通過しており、promise.allを実装する必要があります。ここに私の解決策があります。javascriptの実装はpromise.allが機能していませんか?
function all(promises) {
return new Promise(function(success, fail) {
var results = [];
var failed = false;
promises.forEach(function(promise) {
promise.then(function(result) {
results.push(result);
}, function (error) {
failed = true;
fail(error);
});
});
if (!failed)
success(results);
});
}
これは私が実行しているテストです。私たちは、[]
必要があります:[3、2、1] []
これは次のようになります。私のコードは、これは[]でなければなりません
を出力していますbecuase、明らかに間違っている
// Test code.
all([]).then(function(array) {
console.log("This should be []:", array);
});
function soon(val) {
return new Promise(function(success) {
setTimeout(function() { success(val); },
Math.random() * 500);
});
}
all([soon(1), soon(2), soon(3)]).then(function(array) {
console.log("This should be [1, 2, 3]:", array);
});
function fail() {
return new Promise(function(success, fail) {
fail(new Error("boom"));
});
}
all([soon(1), fail(), soon(3)]).then(function(array) {
console.log("We should not get here");
}, function(error) {
if (error.message != "boom")
console.log("Unexpected failure:", error);
});
ここに来ないでください
最初のものが唯一正しいものです。 基本的に私の欠陥があるビューから、私が書いたものを作品と同じであり、ここで見つけることができ、実際のソリューション: http://eloquentjavascript.net/code/#17.2
私のコードは動作しないのはなぜ?どうしたの?
@AliTorabiはジャークてはいけません。プログラミングや言語の理解を深めるために、ホイールを再発明することが重要な場合もあります。 –
@AliTorabi学習の練習として、よく理解するために共通の機能を再実装することは良いことです。私の理解は、これがOPの目標だということです。 – Timo
私はもはやじゃない。コードと質問の操作 –