美文网首页
async/await

async/await

作者: 不再犹豫Debug | 来源:发表于2019-08-15 20:43 被阅读0次

async/await可以理解为对promise使用方法的补充。

await

先上代码

function pm (){
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('aa')
      // reject('err')
    }, 1000)
  })
}
let a = await pm();

此时这个变量a就等于‘aa'。
需要注意的是,a并不是一个promise对象,而是resolve里传的参数。也就是成功回调的参数。
但是直接这么写会报错。它的语法是

async function test(){
  let a = await pm();
  console.log(a);
  let b = await 'bb';
  return a + b;
}

await 必须在一个async(异步)函数里才能使用。
到现在我们可以总结出一点,await的作用就是等待一个promise状态改变后才执行下一行。但是如果await不是一个promise,就直接返回。
所以,

test().then(val => {console.log(val)})

的结果是 ’aabb‘。
但是如果await的这个promise reject一个错误。那么就会报错。我理解为await仅仅是在等待resolve。如果resolve不来,它就报错。

async

刚才写道test().then(val => {console.log(val)})的结果是’aabb',为什么是test().then(val => {console.log(val)}),而不是console.log(test())?
这是因为async自动将常规函数转换成Promise,返回值也是一个Promise对象。
至此,我也稍微明白了async/await。以后有其他疑问再继续总结把。

相关文章

  • async和await

    浅谈Async/Await用 async/await 来处理异步 async和await async:声明一个异步...

  • ES8(一) —— async&await

    目录 async和普通函数的区别 await async/await处理多回调异步 async和await必须配合...

  • async

    async/await特点 async/await更加语义化,async是“异步”的简写,async functi...

  • ES6中的好东西

    1 Await/Async 前端的回调时代我没有赶上,我赶上的是await/async时代。await和async...

  • Vue接口调用方式(三)async/await用法

    async/await用法 1. async/await的基本用法 async/await是ES7引入的新语法,可...

  • nodejs async 使用简介

    async await node async 使用

  • JS 中的 async/await

    async/await 是什么? async/await 是 ES2017 中新增的异步解决方案; await 只...

  • ES2017 async 函数

    async 和 await 在干什么 每个名称都有意义async : 异步await: async wait简...

  • async/await

    async/await async/await 是Generator的语法糖。 Generator 通过将Gene...

  • 小程序-云开发

    async和await async:异步(无等待)await:等待(是为了同步) 一、await 关键字只在 as...

网友评论

      本文标题:async/await

      本文链接:https://www.haomeiwen.com/subject/ybptsctx.html