Baseline Widely available
Promise.all()
ë©ìëë ìí ê°ë¥í ê°ì²´ì 주ì´ì§ 모ë íë¡ë¯¸ì¤ê° ì´íí í, í¹ì íë¡ë¯¸ì¤ê° 주ì´ì§ì§ ììì ë ì´ííë Promise
를 ë°íí©ëë¤. 주ì´ì§ íë¡ë¯¸ì¤ ì¤ íëê° ê±°ë¶íë ê²½ì°, 첫 ë²ì§¸ë¡ ê±°ì í íë¡ë¯¸ì¤ì ì´ì 를 ì¬ì©í´ ìì ë ê±°ë¶í©ëë¤.
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "foo");
});
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
});
// Expected output: Array [3, 42, "foo"]
구문 매ê°ë³ì
iterable
Array
ì ê°ì´ ìí ê°ë¥í(iterable) ê°ì²´.
Promise
.Promise
. ë¨, Google Chrome 58ì ì´ë¯¸ ì´íí íë¡ë¯¸ì¤ë¥¼ ë°íí©ëë¤.Promise
. ê²°ê³¼ë¡ ë°ííë íë¡ë¯¸ì¤ë ì¸ìì 모ë íë¡ë¯¸ì¤ê° ì´ííê±°ë ì´ë¤ íë¡ë¯¸ì¤ê° ê±°ë¶í ë (í¸ì¶ ì¤íì´ ë¹ë ì¦ì) ë¹ë기ì ì¼ë¡ ì´í/ê±°ë¶í©ëë¤. "Promise.all
ì ë기ì±/ë¹ë기ì±" ìì 를 ì°¸ê³ íì¸ì. ë°ííë íë¡ë¯¸ì¤ì ì´í ê°ì 매ê°ë³ìë¡ ì£¼ì´ì§ íë¡ë¯¸ì¤ì ììì ì¼ì¹íë©°, ìë£ ììì ìí¥ì ë°ì§ ììµëë¤.ì´ ë©ìëë ì¬ë¬ íë¡ë¯¸ì¤ì 결과를 ì§ê³í ë ì ì©íê² ì¬ì©í ì ììµëë¤. ì¼ë°ì ì¼ë¡ ë¤ì ì½ë를 ê³ì ì¤íí기 ì ì ìë¡ ì°ê´ë ë¹ë기 ìì ì¬ë¬ ê°ê° 모ë ì´íëì´ì¼ íë ê²½ì°ì ì¬ì©ë©ëë¤.
ì
ë ¥ ê°ì¼ë¡ ë¤ì´ì¨ íë¡ë¯¸ì¤ ì¤ íëë¼ë ê±°ë¶ ë¹íë©´ Promise.all()
ì ì¦ì ê±°ë¶í©ëë¤. ì´ì ë¹í´, Promise.allSettled()
ê° ë°ííë íë¡ë¯¸ì¤ë ì´í/ê±°ë¶ ì¬ë¶ì ê´ê³ìì´ ì£¼ì´ì§ íë¡ë¯¸ì¤ê° 모ë ìë£ë ëê¹ì§ 기ë¤ë¦½ëë¤. ê²°ê³¼ì ì¼ë¡, 주ì´ì§ ì´í°ë¬ë¸ì 모ë íë¡ë¯¸ì¤ì í¨ìì ê²°ê³¼ ê°ì ìµì¢
ì ì¼ë¡ ë°íí©ëë¤.
ë°íí íë¡ë¯¸ì¤ì ì´í ê²°ê³¼ê°ì (íë¡ë¯¸ì¤ê° ìë ê°ì í¬í¨íì¬) 매ê°ë³ìë¡ ì£¼ì´ì§ ìí ê°ë¥í ê°ì²´ì í¬í¨ë 모ë ê°ì ë´ì ë°°ì´ì ëë¤.
주ì´ì§ íë¡ë¯¸ì¤ ì¤ íëë¼ë ê±°ë¶íë©´, ë¤ë¥¸ íë¡ë¯¸ì¤ì ì´í ì¬ë¶ì ìê´ìì´ ì²« ë²ì§¸ ê±°ë¶ ì´ì 를 ì¬ì©í´ ê±°ë¶í©ëë¤.
ìì Promise.all
ì¬ì©í기
Promise.all
ì ë°°ì´ ë´ ëª¨ë ê°ì ì´í(ëë 첫 ë²ì§¸ ê±°ë¶)ì 기ë¤ë¦½ëë¤.
var p1 = Promise.resolve(3);
var p2 = 1337;
var p3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("foo");
}, 100);
});
Promise.all([p1, p2, p3]).then((values) => {
console.log(values); // [3, 1337, "foo"]
});
ìí ê°ë¥í ê°ì²´ì íë¡ë¯¸ì¤ê° ìë ê°ì´ ë¤ì´ìë¤ë©´ 무ìíì§ë§, ì´í ì ê²°ê³¼ ë°°ì´ìë í¬í¨í©ëë¤.
// 매ê°ë³ì ë°°ì´ì´ ë¹ ê²ê³¼ ëì¼íê² ì·¨ê¸íë¯ë¡ ì´íí¨
var p = Promise.all([1, 2, 3]);
// 444ë¡ ì´ííë íë¡ë¯¸ì¤ íëë§ ì ê³µí ê²ê³¼ ëì¼íê² ì·¨ê¸íë¯ë¡ ì´íí¨
var p2 = Promise.all([1, 2, 3, Promise.resolve(444)]);
// 555ë¡ ê±°ë¶íë íë¡ë¯¸ì¤ íëë§ ì ê³µí ê²ê³¼ ëì¼íê² ì·¨ê¸íë¯ë¡ ê±°ë¶í¨
var p3 = Promise.all([1, 2, 3, Promise.reject(555)]);
// setTimeout()ì ì¬ì©í´ ì¤íì´ ë¹ íì ì¶ë ¥í ì ìì
setTimeout(function () {
console.log(p);
console.log(p2);
console.log(p3);
});
// ì¶ë ¥
// Promise { <state>: "fulfilled", <value>: Array[3] }
// Promise { <state>: "fulfilled", <value>: Array[4] }
// Promise { <state>: "rejected", <reason>: 555 }
Promise.all
ì ë기ì±/ë¹ë기ì±
ë¤ì ìì ë Promise.all
ì ë¹ë기ì±(주ì´ì§ ì¸ìê° ë¹ ê²½ì°ì ë기ì±)ì ë³´ì
ëë¤.
// Promise.allì ìµëí 빨리 ìë£ìí¤ê¸° ìí´
// ì´ë¯¸ ì´íë íë¡ë¯¸ì¤ë¡ ë°°ì´ì ë§ë¤ì´ ì¸ìë¡ ì ë¬
var resolvedPromisesArray = [Promise.resolve(33), Promise.resolve(44)];
var p = Promise.all(resolvedPromisesArray);
// ì¤í ì¦ì pì ê°ì 기ë¡
console.log(p);
// í¸ì¶ ì¤íì ë¹ì´ ë¤ì ì¤íí기 ìí´ setTimeoutì ì¬ì©
setTimeout(function () {
console.log("the stack is now empty");
console.log(p);
});
// ë¡ê·¸ ì¶ë ¥ ê²°ê³¼ (ììëë¡):
// Promise { <state>: "pending" }
// the stack is now empty
// Promise { <state>: "fulfilled", <value>: Array[2] }
Promise.all()
ì´ ê±°ë¶íë ê²½ì°ìë ëì¼í ì¼ì´ ë°ìí©ëë¤:
var mixedPromisesArray = [Promise.resolve(33), Promise.reject(44)];
var p = Promise.all(mixedPromisesArray);
console.log(p);
setTimeout(function () {
console.log("the stack is now empty");
console.log(p);
});
// ì¶ë ¥
// Promise { <state>: "pending" }
// the stack is now empty
// Promise { <state>: "rejected", <reason>: 44 }
ê·¸ë¬ë, Promise.all
ì 주ì´ì§ ìí ê°ë¥í ê°ì²´ê° ë¹ì´ìë ê²½ì°ìë§ ë기ì ì¼ë¡ ì´íë©ëë¤.
var p = Promise.all([]); // ì¦ì ì´íí¨
var p2 = Promise.all([1337, "hi"]); // íë¡ë¯¸ì¤ê° ìë ê°ì 무ìíì§ë§ ë¹ë기ì ì¼ë¡ ì¤íë¨
console.log(p);
console.log(p2);
setTimeout(function () {
console.log("the stack is now empty");
console.log(p2);
});
// ì¶ë ¥
// Promise { <state>: "fulfilled", <value>: Array[0] }
// Promise { <state>: "pending" }
// the stack is now empty
// Promise { <state>: "fulfilled", <value>: Array[2] }
Promise.all()
ì¤í¨ ì°ì ì±
Promise.all()
ì ë°°ì´ ë´ ìì ì¤ ì´ë íëë¼ë ê±°ë¶íë©´ ì¦ì ê±°ë¶í©ëë¤. ì를 ë¤ì´, ì¼ì ìê°ì´ ì§ë ì´í ì´ííë ë¤ ê°ì íë¡ë¯¸ì¤ì, ì¦ì ê±°ë¶íë íëì íë¡ë¯¸ì¤ë¥¼ ì ë¬íë¤ë©´ Promise.all()
ë ì¦ì ê±°ë¶í©ëë¤.
var p1 = new Promise((resolve, reject) => {
setTimeout(() => resolve("íë"), 1000);
});
var p2 = new Promise((resolve, reject) => {
setTimeout(() => resolve("ë"), 2000);
});
var p3 = new Promise((resolve, reject) => {
setTimeout(() => resolve("ì
"), 3000);
});
var p4 = new Promise((resolve, reject) => {
setTimeout(() => resolve("ë·"), 4000);
});
var p5 = new Promise((resolve, reject) => {
reject(new Error("ê±°ë¶"));
});
// .catch ì¬ì©:
Promise.all([p1, p2, p3, p4, p5])
.then((values) => {
console.log(values);
})
.catch((error) => {
console.log(error.message);
});
// ì½ì ì¶ë ¥ê°:
// "ê±°ë¶"
ë°ìí ì ìë ê±°ë¶ë¥¼ ì¬ì ì ì²ë¦¬í´ ëì ë°©ìì ë°ê¿ ì ììµëë¤.
var p1 = new Promise((resolve, reject) => {
setTimeout(() => resolve("p1_ì§ì°_ì´í"), 1000);
});
var p2 = new Promise((resolve, reject) => {
reject(new Error("p2_ì¦ì_ê±°ë¶"));
});
Promise.all([
p1.catch((error) => {
return error;
}),
p2.catch((error) => {
return error;
}),
]).then((values) => {
console.log(values[0]); // "p1_ì§ì°_ì´í"
console.log(values[1]); // "Error: p2_ì¦ì_ê±°ë¶"
});
ëª
ì¸ ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4