Baseline Widely available *
ÐпеÑаÑÐ¾Ñ await
иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ Promise
. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзован ÑолÑко внÑÑÑи async function
или на веÑÑ
нем ÑÑовне модÑлÑ.
[rv] = await expression;
expression
Promise
или лÑбое дÑÑгое знаÑение Ð´Ð»Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ ÑазÑеÑениÑ.
rv
ÐозвÑаÑÐ°ÐµÑ Ð¿Ð¾Ð»ÑÑенное из Promise
знаÑение, либо Ñамо знаÑение, еÑли оно не ÑвлÑеÑÑÑ Promise.
ÐпеÑаÑÐ¾Ñ await
заÑÑавлÑÐµÑ ÑÑнкÑиÑ, обÑÑвленнÑÑ Ñ Ð¸ÑполÑзованием опеÑаÑоÑа async
, ждаÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Promise
и пÑодолжаÑÑ Ð²Ñполнение поÑле возвÑаÑÐµÐ½Ð¸Ñ Promise
знаÑениÑ. ÐпоÑледÑÑвии возвÑаÑÐ°ÐµÑ Ð¿Ð¾Ð»ÑÑенное из Promise
знаÑение. ÐÑли Ñипом знаÑениÑ, к коÑоÑÐ¾Ð¼Ñ Ð±Ñл пÑименÑн опеÑаÑÐ¾Ñ await
, ÑвлÑеÑÑÑ Ð½Ðµ Promise
, Ñо знаÑение пÑиводиÑÑÑ Ðº ÑÑпеÑно вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð½Ð¾Ð¼Ñ Promise
.
ÐÑли Promise
оÑклонÑеÑÑÑ, Ñо await
генеÑиÑÑÐµÑ Ð¸ÑклÑÑение Ñ Ð¾ÑклонÑннÑм знаÑением.
await
Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ ÑазÑеÑÐµÐ½Ð¸Ñ Promise
и возвÑаÑÐ°ÐµÑ Ð¿Ð¾Ð»ÑÑенное знаÑение.
function resolveAfter2Seconds(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function f1() {
var x = await resolveAfter2Seconds(10);
console.log(x); // 10
}
f1();
ÐÑли Ñипом знаÑÐµÐ½Ð¸Ñ ÑвлÑеÑÑÑ Ð½Ðµ Promise
, знаÑение пÑеобÑазÑеÑÑÑ Ðº ÑÑпеÑно вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð½Ð¾Ð¼Ñ Promise
.
async function f2() {
var y = await 20;
console.log(y); // 20
}
f2();
ÐÑли Promise
оÑклонÑн, Ñо вÑбÑаÑÑваеÑÑÑ Ð¸ÑклÑÑение Ñ Ð¿ÐµÑеданнÑм знаÑением.
async function f3() {
try {
var z = await Promise.reject(30);
} catch (e) {
console.log(e); // 30
}
}
f3();
ÐбÑабоÑка оÑклонÑнного Promise
без try/catch
блока.
var response = await promisedFunction().catch((err) => {
console.log(err);
});
// response полÑÑÐ¸Ñ Ð·Ð½Ð°Ñение undefined, еÑли Promise бÑÐ´ÐµÑ Ð¾ÑклонÑн
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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