const promise1 = new Promise((resolve, reject) => {
resolve('foo');
// reject('foo');
});
promise1.then((value) => {
console.log(value, "_resolve");
}).catch((value) => {
console.log(value, "_reject");
})
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(reject, 100, 'foo');
});
const promise4 = new Promise((resolve, reject) => {
setTimeout(reject, 100, 'boo');
});
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
}).catch((values) => {
console.log(values, ' _ reject');
});
expected output: foo _ reject
const promise1 = Promise.resolve(3);
const promise2 = new Promise((resolve, reject) => setTimeout(reject, 100, 'foo'));
const promise3 = Promise.resolve(3);
const promises = [promise1, promise2, promise3];
Promise.allSettled(promises).
then((results) => results.forEach((result) => console.log(result.status)));
"fulfilled"
"rejected"
"fulfilled"
순서대로 출력됨
const values = await Promise.allSettled([
Promise.resolve(33),
new Promise(resolve => setTimeout(() => resolve(66), 0)),
99,
Promise.reject(new Error('an error'))
])
console.log(values)
// {status: "fulfilled", value: 33},
// {status: "fulfilled", value: 66},
// {status: "fulfilled", value: 99},
// {status: "rejected", reason: Error: an error}
완료순서로 반환됨
const promise1 = Promise.reject(0);
const promise2 = new Promise((resolve) => setTimeout(resolve, 100, 'quick'));
const promise3 = new Promise((resolve) => setTimeout(resolve, 500, 'slow'));
const promises = [promise1, promise2, promise3];
Promise.any(promises).then((value) => console.log(value));
AggregateError
반환.const promise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 500, 'one');
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'two');
});
Promise.race([promise1, promise2]).then((value) => {
console.log(value);
// Both resolve, but promise2 is faster
});
참조) MDN