关于async和await

知识拓展

async function 用来定义一个返回 AsyncFunction对象的异步函数。异步函数是指通过事件循环异步执行的函数,它会通过一个隐式的 Promise返回其结果。


语法

async function name([param[, param[, ... param]]]) { statements }

参数

name函数名称。
param要传递给函数的参数。
statements函数体语句。

返回值
返回的Promise对象会运行执行(resolve)异步函数的返回结果,或者运行拒绝(reject)——如果异步函数抛出异常的话。

示例

async function fn(){  //表示异步,这个函数里面有异步任务
    let result = await  xxx //表示后面结果需要等待数据读取完后执行    
}

async特点

  • await只能放到async函数中
  • 相比genrator语义化更强
  • await后面可以是promise对象,也可以是数字、字符串、布尔
  • async函数返回的是一个promise对象
  • 只要await语句后面Promise状态变成 reject, 那么整个async函数会中断执行

示例代码

你可以通过下面这段代码来体会一下

function resolveAfter2Seconds() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('resolved');
    }, 2000);
  });
}

async function asyncCall() {
  console.log('calling');
  var result = await resolveAfter2Seconds();
  console.log(result);
  // expected output: 'resolved'
}

asyncCall();
发布了147 篇原创文章 · 获赞 49 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/bigbear00007/article/details/103543568
今日推荐