-1
我如何在中使用async/await
javascript?如何在javascript中使用aync/await?
我想擺脫所有的承諾和回調,並在JavaScript中使用異步/等待?
我該怎麼做?
任何幫助是撥款?
我如何在中使用async/await
javascript?如何在javascript中使用aync/await?
我想擺脫所有的承諾和回調,並在JavaScript中使用異步/等待?
我該怎麼做?
任何幫助是撥款?
的異步/等待函數的目的是爲了簡化使用許諾同步的行爲 並在 組承諾的執行某些行爲。就像承諾類似於結構化 回調,異步/等待類似於組合生成器和 承諾。
見這個例子:
function resolveAfter2Seconds(x) {
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function add1(x) {
var a = resolveAfter2Seconds(20);
var b = resolveAfter2Seconds(30);
return x + await a + await b;
}
add1(10).then(v => {
console.log(v); // prints 60 after 2 seconds.
});
async function add2(x) {
var a = await resolveAfter2Seconds(20);
var b = await resolveAfter2Seconds(30);
return x + a + b;
}
add2(10).then(v => {
console.log(v); // prints 60 after 4 seconds.
});
返回許諾將導致承諾鏈,並將其拆分功能成許多部分的API。考慮下面的代碼:
function getProcessedData(url) {
return downloadData(url) // returns a promise
.catch(e => {
return downloadFallbackData(url); // returns a promise
})
.then(v => {
return processDataInWorker(v); // returns a promise
});
}
它可以用單個異步功能被重寫爲如下:
async function getProcessedData(url) {
let v;
try {
v = await downloadData(url);
} catch(e) {
v = await downloadFallbackData(url);
}
return processDataInWorker(v);
}
https://www.google.com/search?q=use+async% 2Fawait + in + javascript – SLaks
很抱歉讓你失望,但'async' /'await'沒有擺脫承諾。它*擁抱*他們。 – Bergi
謝謝你回答我,但你能解釋我嗎? –