カスタム Promise.all() を実装する
793 ワード
Promise.myAll = function (values) {
return new Promise((resolve, reject) => {
let results = [];
let completed = 0;
values.forEach((singlePromise, index) => {
singlePromise
.then((res) => {
results[index] = res;
completed++;
if (completed === values.length) resolve(results);
})
.catch((e) => {
reject(e);
});
});
});
};
function task(time) {
return new Promise((resolve, reject) => {
setTimeout(() => resolve(time), time);
});
}
const taskList = [task(1000), task(5000), task(3000)];
Promise.myAll(taskList)
.then((results) => {
console.log("got results", results);
})
.catch(console.error);
Reference
この問題について(カスタム Promise.all() を実装する), 我々は、より多くの情報をここで見つけました https://dev.to/sauravgupta2800/implement-custom-promise-all-g7gテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol