async-await
是promise
和generator
的语法糖。只是为了让我们书写代码时更加流畅,当然也增强了代码的可读性。
async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。
即先执行async,async 函数返回的是一个 Promise 对象,
然后进行await。
await 必须出现在 async 函数内部,不能单独使用。
实例:
function sleep(num) { return new Promise(function (resolve,reject) { setTimeout(function () { resolve(num+1) },1000) }) }
async function asyncAwait() { var result1 = await sleep(0); var result2 = await sleep(result1); var result3 = await sleep(result2); console.log(result1, result2, result3); }
function sleep(second, param) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(param);
}, second);
})
}
async function test() {
let result1 = await sleep(2000, 'req01');
let result2 = await sleep(1000, 'req02' + result1);
let result3 = await sleep(500, 'req03' + result2);
console.log(`
${result3}
${result2}
${result1}
`);
}
错误处理:
async function errorDemoSuper() {
try {
let result = await sleep(1000);
console.log(result);
} catch (err) {
console.log(err);
}
}