Baseline 2024
Newly available
Promise.withResolvers()
éçã¡ã½ããã¯ãæ°ãã Promise
ãªãã¸ã§ã¯ãã¨ãPromise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã®å®è¡åã«æ¸¡ã 2 ã¤ã®å¼æ°ã«å¯¾å¿ããã解決ã¾ãã¯æå¦ã® 2 ã¤ã®é¢æ°ãå«ããªãã¸ã§ã¯ããè¿ãã¾ãã
ãªãã
è¿å¤ä»¥ä¸ã®ããããã£ãæ ¼ç´ãããã¬ã¼ã³ãªãã¸ã§ã¯ãã§ãã
promise
Promise
ãªãã¸ã§ã¯ãã§ãã
resolve
ãããã¹ã解決ãããã¨ãã®é¢æ°ã§ããæå³ä»ãã«ã¤ãã¦ã¯ Promise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ãªãã¡ã¬ã³ã¹ãåç
§ãã¦ãã ããã
reject
ãããã¹ãæå¦ãããã¨ãã®é¢æ°ã§ããæå³ä»ãã«ã¤ãã¦ã¯ Promise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ãªãã¡ã¬ã³ã¹ãåç
§ãã¦ãã ããã
Promise.withResolvers()
ã¯ä»¥ä¸ã®ã³ã¼ãã¨å
¨ãåãã§ãã
let resolve, reject;
const promise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
ãã ããããç°¡æ½ã§ãããlet
ã使ç¨ããå¿
è¦ã¯ããã¾ããã
Promise.withResolvers()
ã使ç¨ããå ´åã®ä¸»ãªéãã¯ãè§£æ±ºé¢æ°ãæå¦é¢æ°ãå®è¡ç°å¢ã§ä¸åº¦ãã¤ä½æãã¦ä½¿ç¨ããã®ã§ã¯ãªãããããã¹èªèº«ã¨åãã¹ã³ã¼ãã§ä½¿ç¨ãããã¨ã§ããããã«ãããç¹ã«ã¹ããªã¼ã ããã¥ã¼ã§ç¹°ãè¿ãçºçããã¤ãã³ãã«ä½¿ç¨ããå ´åãªã©ãããé«åº¦ãªç¨éãå¯è½ã«ãªãã¾ããã¾ããããã¯ä¸è¬çã«ãå®è¡ç°å¢å
ã§å¤ãã®ãã¸ãã¯ãã©ãããããããå
¥ãåãå°ãªããªãã¾ãã
Promise.withResolvers()
ã¯æ±ç¨çã§ããããµãã¯ã©ã¹ã«å¯¾å¿ãã¦ãã¾ããã¤ã¾ããPromise
ã®ãµãã¯ã©ã¹ã§å¼ã³åºããã¨ãã§ãããã®çµæã«ã¯ãµãã¯ã©ã¹ã®åã®ãããã¹ãæ ¼ç´ããã¾ãããã®ããã«ã¯ããµãã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ Promise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨åãã·ã°ããã£ãå®è£
ããå¿
è¦ãããã¾ããresolve
㨠reject
ã³ã¼ã«ããã¯ã弿°ã¨ãã¦å¼ã³åºãããåä¸ã®å®è¡é¢æ°ãåãå
¥ãã¾ãã
Promise.withResolvers()
ã®ä½¿ç¨ããç¨éã¯ããããã¹ã®å®è¡ç°å¢å
ã«ã©ããã§ããªãã¤ãã³ããªã¹ãã¼ã«ãã£ã¦è§£æ±ºã¾ãã¯æå¦ããããããã¹ãããå ´åã§ããæ¬¡ã®ä¾ã¯ãNode.js ã®èªã¿åãå¯è½ãªã¹ããªã¼ã ãéåæå復å¯è½ãªãã¸ã§ã¯ãã«å¤æãã¾ããããã§ã®åãããã¹ã¯å©ç¨ã§ãããã¼ã¿ã®åä¸ã®ãããã表ããç¾å¨ã®ããããèªã¿è¾¼ã¾ãããã³ã«ã次ã®ãããã®ããã«æ°ãããããã¹ã使ããã¾ããã¤ãã³ããªã¹ãã¼ã¯ä¸åº¦ããã¢ã¿ããããã¾ããããå®éã«ã¯æ¯åãresolve
颿°ã¨ reject
颿°ã®ç°ãªããã¼ã¸ã§ã³ãå¼ã³åºãã¦ãããã¨ã«æ³¨æãã¦ãã ããã
async function* readableToAsyncIterable(stream) {
let { promise, resolve, reject } = Promise.withResolvers();
stream.on("error", (error) => reject(error));
stream.on("end", () => resolve());
stream.on("readable", () => resolve());
while (stream.readable) {
await promise;
let chunk;
while ((chunk = stream.read())) {
yield chunk;
}
({ promise, resolve, reject } = Promise.withResolvers());
}
}
Promise 以å¤ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã«å¯¾ãã withResolvers() ã®å¼ã³åºã
Promise.withResolvers()
ã¯æ±ç¨ã¡ã½ããã§ãããã㯠Promise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨åãã·ã°ããã£ãå®è£
ããä»»æã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã§å¼ã³åºããã¨ãã§ãã¾ããä¾ãã°ã console.log
ã resolve
㨠reject
颿°ã¨ã㦠executor
ã«æ¸¡ãã³ã³ã¹ãã©ã¯ã¿ã¼ã«å¯¾ãã¦å¼ã³åºããã¨ãã§ãã¾ãã
class NotPromise {
constructor(executor) {
// "resolve" 颿°ã¨ "reject" 颿°ã¯ãã¤ãã£ãã®ãããã¹ã¨åããããª
// æ¯ãèãã¯ãã¾ããããPromise.withResolvers() ã¯ãããããã®ã¾ã¾è¿ãã¾ãã
executor(
(value) => console.log("Resolved", value),
(reason) => console.log("Rejected", reason),
);
}
}
const { promise, resolve, reject } = Promise.withResolvers.call(NotPromise);
resolve("hello");
// Logs: Resolved hello
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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