非同期Promiseメソッド
注釈サンプルコード一労永逸、一労永逸 一つのメッセージもerrであればエラーが発生する Promise.allは、配列内のすべての値の実行(または最初の拒否)を待機します. 巡回可能オブジェクトに非Premiss値が含まれている場合は無視するが、実行時に結果配列に含まれる 1位で終わっても 容量の大きい画像を複数使用する場合、高速ロードされた画像を1つ表示するため
const f1 = (message) => {
console.log(message);
return new Promise((res, rej) => {
setTimeout(() => {
res('1번 주문');
}, 3000);
});
};
const f2 = (message) => {
console.log('2번', message); // 2번 1번 주문
return new Promise((res, rej) => {
setTimeout(() => {
res('2번 주문');
}, 1000);
});
};
const f3 = (message) => {
console.log('3번', message); //3번 2번 주문
return new Promise((res, rej) => {
setTimeout(() => {
res('3번 주문');
}, 2000);
});
};
📌Promise.all
promise
console.time('xx');
Promise.all([f1(), f2(), f3()]).then((res) => {
console.log(res);
console.timeEnd('xx'); // 대략 3초
});
function pickAll() {
return Promise.all([getApple(), getBanana()]).then((fruits) =>
fruits.join('+')
);
}
pickAll().then(console.log);
const readAllUsers = () => {
return new Promise((res, rej) => {
let one = getDataFromFilePromise(user1Path).then((data) =>
JSON.parse(data)
);
let two = getDataFromFilePromise(user2Path).then((data) =>
JSON.parse(data)
);
Promise.all([one, two]).then((data) => res(data));
});
};
async
async function order() {
try {
const result = await Promise.all([f1(), f2(), f3()]);
console.log(result);
} catch (e) {
console.log(e);
}
}
console.log('end');
async function order2() {
let promiseDummy = [Promise 객체, Promise 객체, Promise 객체]
return Promise.all(promiseDummy)
}
📌Promise.race
console.time('xxx');
Promise.race([f1(), f2(), f3()]).then((res) => {
console.log(res);
console.timeEnd('xxx'); // 대략 1초
});
📌Promise.reject
📌Promise.resolve
Reference
この問題について(非同期Promiseメソッド), 我々は、より多くの情報をここで見つけました https://velog.io/@ellie12/비동기-Promise-메소드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol