ES7 中 async await

处理多个之间相互依赖的请求,使用async和await会更加优雅。
async/await规则一、凡是在前面添加了async的函数在执行后都会自动返回一个Promise对象。
eg:

async function test(){
  
}
let result = test();
console.log(reslut)  // Promise {<resolved>: undefined}

async/await规则二、await必须在async函数中使用,不能单独使用

async function test(){
  let result = await Promise.resolve("sucess")
  console.log(result)
}
test();

async/await规则三、await后面需要跟Promise对象

function fn(){
  return new Promise((resolve,reject)=>{
    setTimeout(()=>{
      resolve("sucess")
    })
  })
}
async function test(){
  let result = await fn();
  console.log(result)
}
test();

async和await 的错误的处理方法
我们可以通过给包裹await的async函数添加then/catch方法来解决

let promiseDemo = new Promise((resolve,reject)=>{
  setTimeout(()=>{
    let random = Math.random();
    if(random >= 0.5 ){
      resolve('sucess')
    } else {
      reject('failed')
    }
  }, 1000)  
})
async function test (){
  let result = await promiseDemo;
  return reslut
}
test().then(response => {
  console.log(response)
}).catch(error => {
  console.log(error)
})


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 异步编程对JavaScript语言太重要。Javascript语言的执行环境是“单线程”的,如果没有异步编程,根本...
    呼呼哥阅读 7,334评论 5 22
  • async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是...
    huilegezai阅读 1,278评论 0 6
  • 简单介绍下这几个的关系为方便起见 用以下代码为例简单介绍下这几个东西的关系, async 在函数声明前使用asyn...
    _我和你一样阅读 21,272评论 1 24
  • [注:以下代码都在支持 Promise 的 Node 环境中实现] 1 promise 释义 promise 是抽...
    夏暮阅读 698评论 0 0
  • 当你看到这个标题的时候,肯定会在想什么逻辑?讲真,要不是有亲身经历,我也不会产生这个想法。如果一个爱你的人为你撑伞...
    逐梦菇凉阅读 1,674评论 12 11