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