Baseline 2025
Newly available
Experimental: ããã¯å®é¨çãªæ©è½ã§ãã
æ¬çªã§ä½¿ç¨ããåã«ãã©ã¦ã¶ã¼äºææ§ä¸è¦§è¡¨ããã§ãã¯ãã¦ãã ããã
Promise.try()
éçã¡ã½ããã¯ããããã種é¡ã®ã³ã¼ã«ããã¯ï¼è¿ããçºçãããåæçãéåæçï¼ãåãåãããã®çµæã Promise
ã§ã©ãããã¾ãã
func
弿°ãªãã§åæçã«å¼ã³åºããã颿°ã§ããä½ããã®å¦çãè¡ããã¨ãã§ããè¿å¤ãè¿ããã¨ããã¨ã©ã¼ãçºçããããã¨ãããããã¹ãè¿ããã¨ãå¯è½ã§ãã
Promise
ã§ã次ã®ãããªãã®ã§ãã
func
ãåæçã«å¤ãè¿ãå ´åã¯ããã§ã«å±¥è¡ããããã®ãfunc
ãåæçã«ã¨ã©ã¼ãçºçããå ´åã¯ããã§ã«æå¦ããããã®ãfunc
ã¯ãããã¹ãè¿ãã¾ããã³ã¼ã«ããã¯ãåãåã API ãããã¾ãã ã³ã¼ã«ããã¯ã¯åæã¾ãã¯éåæã®ã©ã¡ãã§ãå¯è½ã§ãã çµæããããã¹ã§ã©ãããããã¨ã§ããã¹ã¦ãçµ±ä¸çã«å¦çãããå ´åãæãããããããæ¹æ³ã¯ãPromise.resolve(func())
ã§ãããã åé¡ã¯ãfunc()
ã§åæçã«ã¨ã©ã¼ãçºçããå ´åããã®ã¨ã©ã¼ãè£è¶³ããããæå¦ããããããã¹ã«å¤æãããªããã¨ã§ãã
ä¸è¬çãªææ³ï¼å±¥è¡ããããæå¦ããããã«é¢ãããã颿°å¼ã³åºãã®çµæããããã¹ã«æã¡ä¸ããï¼ã¯ã以ä¸ã®ããã«ãããã¨ãå¤ãã§ãã
new Promise((resolve) => resolve(func()));
ããããPromise.try()
ã¯ãã£ã¨ä¾¿å©ã§ãã
çµã¿è¾¼ã¿ã® Promise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ã¯ãå®è¡æã«çºçããã¨ã©ã¼ã¯èªåçã«ææãããæå¦ã«å¤æããã¾ãããã®ããããããã® 2 ã¤ã®ææ³ã¯ã»ã¼åçã§ãããPromise.try()
ã®æ¹ãããç°¡æ½ã§èªã¿ãããç¹ãç°ãªãã¾ãã
ãªããPromise.try()
ã¯ããã¨é常ã«ä¼¼ã¦ãã¾ãããåçã§ã¯ããã¾ããã
Promise.resolve().then(func);
éãã¯ãthen()
ã«æ¸¡ãããã³ã¼ã«ããã¯ã¯å¸¸ã«éåæã§å¼ã³åºãããã®ã«å¯¾ããPromise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã®å®è¡ã¯åæã§å¼ã³åºããããã¨ã§ãã Promise.try
ã颿°ãåæã§å¼ã³åºããå¯è½ã§ããã°å³åº§ã«ãããã¹ã解決ãã¾ãã
Promise.try()
ã catch()
ããã³ finally()
ã¨çµã¿åããã¦ä½¿ç¨ãããã¨ã§ãåä¸ã®é£éã§åæçããã³éåæçãªã¨ã©ã¼ã®ä¸¡æ¹ãå¦çãããã¨ãã§ãããããã¹ã¨ã©ã¼å¦çãåæçã¨ã©ã¼å¦çã¨ã»ã¨ãã©åãããã«è¦ãããã¨ãã§ãã¾ãã
次ã®ä¾ã§ã¯ãã³ã¼ã«ããã¯ããããã¹ã«ãå¼ãä¸ãããçµæãå¦çããã¨ã©ã¼å¦çãè¡ãã¾ãã
function doSomething(action) {
return Promise.try(action)
.then((result) => console.log(result))
.catch((error) => console.error(error))
.finally(() => console.log("Done"));
}
doSomething(() => "Sync result");
doSomething(() => {
throw new Error("Sync error");
});
doSomething(async () => "Async result");
doSomething(async () => {
throw new Error("Async error");
});
async/await ã§ã¯ãåãã³ã¼ãã¯æ¬¡ã®ããã«ãªãã¾ãã
async function doSomething(action) {
try {
const result = await action();
console.log(result);
} catch (error) {
console.error(error);
} finally {
console.log("Done");
}
}
Promise 以å¤ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã«ããã try() ã®å¼ã³åºã
Promise.try()
ã¯æ±ç¨ã¡ã½ããã§ããããã¯ãPromise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨åãã·ã°ããã£ãå®è£
ããä»»æã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã§å¼ã³åºããã¨ãã§ãã¾ãã
以ä¸ã¯ãå®éã® Promise.try()
ã«ããå¿ å®ãªè¿ä¼¼è¡¨ç¾ã§ãï¼ãã ãããã¯ãããã¯ããªãã£ã«ã¨ãã¦ä½¿ç¨ãã¹ãã§ã¯ããã¾ããï¼ã
Promise.try = function (func) {
return new this((resolve, reject) => {
try {
resolve(func());
} catch (error) {
reject(error);
}
});
};
Promise.try()
ã®å®è£
æ¹æ³ï¼ã¤ã¾ããtry...catch
ï¼ã«ãããthis
ãä»»æã®ã«ã¹ã¿ã ã³ã³ã¹ãã©ã¯ã¿ã¼ã«è¨å®ã㦠Promise.try()
ãå®å
¨ã«å¼ã³åºããã¨ãã§ããåæãã¦ã¨ã©ã¼ãçºçãããã¨ã¯ããã¾ããã
class NotPromise {
constructor(executor) {
// The "resolve" and "reject" functions behave nothing like the native
// promise's, but Promise.try() just calls resolve
executor(
(value) => console.log("Resolved", value),
(reason) => console.log("Rejected", reason),
);
}
}
const p = Promise.try.call(NotPromise, () => "hello");
// Logs: Resolved hello
const p2 = Promise.try.call(NotPromise, () => {
throw new Error("oops");
});
// Logs: Rejected Error: oops
Promise()
ã¨ã¯ç°ãªãããã® NotPromise()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãexecutor ãå®è¡ããéã«ä¾å¤ãé©åã«å¦çãã¾ãããããããthrow
ãçºçãã¦ããPromise.try()
ã¯ä¾å¤ãææããããã reject()
ã«æ¸¡ãã¦ãã°åºåãã¾ãã
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