语法:express
[return_value] = await expression;
* 属于ES7语法,目前不被浏览器支持浏览器
使用注意:异步
1. await 必须在 async 声明的函数体中才能使用async
2. await 后面只能是Promise对象,若是等待的不是 Promise 对象,则返回该值自己函数
3. await 等待Promise对象必须 resolve,不然函数体将不会继续执行spa
4. async 仅仅影响当前函数体code
示例:orm
异步获取用户信息对象
function getUserInfo(){ return new Promise((resolve, reject) => { setTimeout(() => { resolve('user information ...') },3000); }) } async function init(){ console.log('start of init') var info = await getUserInfo() console.log(info) console.log('end of init') } init() console.log('end of script')
执行结果:blog
执行async声明函数时,若是函数体内有await操做符的异步函数时:
1. 整个脚本会跳过异步操做继续执行后面的代码
2. async函数体内 await操做符后续的代码会等待 await标记的异步操做完成再执行