Baseline 2024
Newly available
Array.fromAsync()
ì ì ë©ìëë ë¹ë기 ìí ê°ë¥, ìí ê°ë¥, ëë ì ì¬ ë°°ì´ ê°ì²´ìì ìê² ë³µì¬ë ìë¡ì´ Array
ì¸ì¤í´ì¤ë¥¼ ë§ëëë¤.
Array.fromAsync(arrayLike)
Array.fromAsync(arrayLike, mapFn)
Array.fromAsync(arrayLike, mapFn, thisArg)
매ê°ë³ì
arrayLike
ë°°ì´ë¡ ë³íí ë¹ë기 ìí ê°ë¥, ìí ê°ë¥, ëë ì ì¬ ë°°ì´ ê°ì²´ì ëë¤.
mapFn
Optional
ë°°ì´ì 모ë ììì ëí´ í¸ì¶í í¨ìì
ëë¤. ì´ í¨ì를 ì ê³µíë©´ ë°°ì´ì ì¶ê°í 모ë ê°ì´ ì´ í¨ìë¡ ë¨¼ì ì ë¬ëê³ , (awaitë í) mapFn
ì ë°í ê°ì´ ëì ë°°ì´ì ì¶ê°ë©ëë¤. ì´ í¨ìë ë¤ì ì¸ì를 ì¬ì©íì¬ í¸ì¶ë©ëë¤.
thisArg
Optional
mapFn
ì ì¤íí ë this
ê°ì¼ë¡ ì¬ì©í ê°ì
ëë¤.
ì´í ê°ì´ ì Array
ì¸ì¤í´ì¤ì¸ ìë¡ì´ Promise
ì
ëë¤.
Array.fromAsync()
ì ë¤ìì¼ë¡ë¶í° ë°°ì´ì ë§ë¤ ì ììµëë¤.
ReadableStream
ì AsyncGenerator
ê°ì ê°ì²´). ëë, ê°ì²´ê° ë¹ë기 ìí ê°ë¥ì´ ìëë¼ë©´,Map
ê³¼ Set
ê°ì ê°ì²´). ëë, ê°ì²´ê° ìí ê°ë¥ì´ ìëë¼ë©´length
ìì±ê³¼ ì¸ë±ì¤ë ììê° ìë ê°ì²´).Array.fromAsync()
ë for await...of
ì ë§¤ì° ì ì¬í ë°©ìì¼ë¡ ë¹ë기 ìí ê°ë¥ì ìíí©ëë¤. Array.fromAsync()
ë ë¤ìì ì ì¸íê³ ëì 측면ìì Array.from()
ê³¼ ê±°ì ëì¼í©ëë¤.
Array.fromAsync()
ë ë¹ë기 ìí ê°ë¥ ê°ì²´ë¥¼ ì²ë¦¬í©ëë¤.Array.fromAsync()
ë ë°°ì´ ì¸ì¤í´ì¤ì ì´ííë Promise
를 ë°íí©ëë¤.Array.fromAsync()
를 í¸ì¶íë©´ ë°°ì´ì ì¶ê°í ê° ììê° ë¨¼ì awaitë©ëë¤.mapFn
ì´ ì ê³µëë©´, ê·¸ ì
ë ¥ê³¼ ì¶ë ¥ì´ ë´ë¶ì ì¼ë¡ await ë©ëë¤.Array.fromAsync()
ì Promise.all()
ì 모ë íë¡ë¯¸ì¤ì ìí ê°ë¥ì ë°°ì´ì íë¡ë¯¸ì¤ë¡ ë³íí ì ììµëë¤. íì§ë§ ë ê°ì§ ì¤ìí ì°¨ì´ì ì´ ììµëë¤.
Array.fromAsync()
ë ê°ì²´ìì yieldë ê° ê°ì ìì°¨ì ì¼ë¡ await í©ëë¤. Promise.all()
ì 모ë ê°ì ëìì await í©ëë¤.Array.fromAsync()
ë ìí ê°ë¥ì ì§ì°(lazy) ìííê³ , íì¬ ê°ì´ íì ë ëê¹ì§ ë¤ì ê°ì ê°ì ¸ì¤ì§ ììµëë¤. Promise.all()
ì 모ë ê°ì 미리 ê°ì ¸ì¤ê³ 모ë await í©ëë¤.const asyncIterable = (async function* () {
for (let i = 0; i < 5; i++) {
await new Promise((resolve) => setTimeout(resolve, 10 * i));
yield i;
}
})();
Array.fromAsync(asyncIterable).then((array) => console.log(array));
// [0, 1, 2, 3, 4]
ë기 ìí ê°ë¥ìì ë°°ì´ ë§ë¤ê¸°
Array.fromAsync(
new Map([
[1, 2],
[3, 4],
]),
).then((array) => console.log(array));
// [[1, 2], [3, 4]]
íë¡ë¯¸ì¤ë¥¼ yieldíë ë기 ìí ê°ë¥ìì ë°°ì´ ë§ë¤ê¸°
Array.fromAsync(
new Set([Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)]),
).then((array) => console.log(array));
// [1, 2, 3]
íë¡ë¯¸ì¤ ì ì¬ ë°°ì´ ê°ì²´ìì ë°°ì´ ë§ë¤ê¸°
Array.fromAsync({
length: 3,
0: Promise.resolve(1),
1: Promise.resolve(2),
2: Promise.resolve(3),
}).then((array) => console.log(array));
// [1, 2, 3]
mapFn ì¬ì©í기
mapFn
ì ì
ë ¥ê³¼ ì¶ë ¥ì 모ë Array.fromAsync()
ìì ë´ë¶ì ì¼ë¡ await ë©ëë¤.
function delayedValue(v) {
return new Promise((resolve) => setTimeout(() => resolve(v), 100));
}
Array.fromAsync(
[delayedValue(1), delayedValue(2), delayedValue(3)],
(element) => delayedValue(element * 2),
).then((array) => console.log(array));
// [2, 4, 6]
Promise.all()ê³¼ ë¹êµí기
Array.fromAsync()
ë ê°ì²´ìì yield ê° ê°ì ìì°¨ì ì¼ë¡ await í©ëë¤. Promise.all()
ì 모ë ê°ì ëìì await í©ëë¤.
function* makeAsyncIterable() {
for (let i = 0; i < 5; i++) {
yield new Promise((resolve) => setTimeout(resolve, 100));
}
}
(async () => {
console.time("Array.fromAsync() ìê°");
await Array.fromAsync(makeAsyncIterable());
console.timeEnd("Array.fromAsync() ìê°");
// Array.fromAsync() ìê°: 503.610ms
console.time("Promise.all() ìê°");
await Promise.all(makeAsyncIterable());
console.timeEnd("Promise.all() ìê°");
// Promise.all() ìê°: 101.728ms
})();
ë기 ìí ê°ë¥ì ëí ì¤ë¥ ì²ë¦¬ ìì
for await...of
ì ê²½ì°ì ë§ì°¬ê°ì§ë¡, ìíëë ê°ì²´ê° ë기 ìí ê°ë¥ì´ê³ , ìííë ëì ì¤ë¥ê° ë°ìíë©´, 기본 ë°ë³µìì return()
ë©ìëê° í¸ì¶ëì§ ìì¼ë¯ë¡ ë°ë³µìê° ì¢
ë£ëì§ ììµëë¤.
function* generatorWithRejectedPromises() {
try {
yield 0;
yield Promise.reject(3);
} finally {
console.log("finally í¸ì¶");
}
}
(async () => {
try {
await Array.fromAsync(generatorWithRejectedPromises());
} catch (e) {
console.log(e, "ì¡ì");
}
})();
// 3 ì¡ì
// "finally í¸ì¶" ë©ìì§ ìì
ë°ë³µì를 ì¢
ë£í´ì¼ íë ê²½ì°, for...of
루í를 ëì ì¬ì©íê³ , ê° ê°ì ì§ì await í´ì¼ í©ëë¤.
(async () => {
const arr = [];
try {
for (const val of generatorWithRejectedPromises()) {
arr.push(await val);
}
} catch (e) {
console.log(e, "ì¡ì");
}
})();
// finally í¸ì¶
// 3 ì¡ì
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
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