/ / Защо чакам само работи във функция async в javascript? - javascript, асинхронно, async-очакване

Защо да чакам само работи в async функция в javascript? - javascript, асинхронно, async-очакване

Просто преминавайки през това настойнически, и това ми пречи да разбера защо await работи само в async функция.

От урока:

Както беше казано, чакаме само работи във функцията async.

От моето разбиране, async обвива връщащия обект функция в обещание, така че обаждащият се може да използва .then()

async function f() {
return 1;
}

f().then(alert); // 1

И await просто чака обещанието да се установи в рамките на async функция.

async function f() {

let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("done!"), 1000)
});

let result = await promise; // wait till the promise resolves (*)

alert(result); // "done!"
}

f();

Струва ми се, че тяхното използване не е свързано, може ли някой да обясни?

Отговори:

0 за отговор № 1

async и await са метални ключови думи, които позволяват на асинхронния код да бъде написан по такъв начин външност синхронно. Една async функцията казва на компилатора преди време, че функцията ще се върне a Promise и няма да има решение веднага. Да използвам await и не блокирайте нишката async трябва да използван.

async function f() {
return await fetch("/api/endpoint");
}

е еквивалентно на

function f() {
return new Promise((resolve,reject) => {
fetch("/api/endpoint")
.then(resolve);
});
}