async await进行异步处理

Posted lvsk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了async await进行异步处理相关的知识,希望对你有一定的参考价值。

参考

http://www.ruanyifeng.com/blog/2015/05/async.html

 https://segmentfault.com/a/1190000007535316

 

await 只能出现在 async 函数中

async 函数返回的是一个 Promise 对象。

async 函数(包含函数语句、函数表达式、Lambda表达式)会返回一个 Promise 对象,如果在函数中 return 一个直接量,async 会把这个直接量通过 Promise.resolve() 封装成 Promise 对象。

async function getAsync() {
    return "hello work";
}
function getAsync() {
    return new Promise((resolve) => {resolve(‘hello work‘) })
}

async function test() {
   const result = await getAsync(); 
  // await 会阻塞后面的代码, 要得到 promise resolve 的值 函数后才会继续往下执行
  // 这就是 await 必须用在 async 函数中的原因。async 函数调用不会造成阻塞,它内部所有的阻塞都被封装在一个 Promise 对象中异步执行。
   console.log("运行") } // 使用 getAsync().then(v => {   console.log(v); // 输出 hello work });

 

 



以上是关于async await进行异步处理的主要内容,如果未能解决你的问题,请参考以下文章

async await进行异步处理

使用 async/await 进行异步 mocha 测试时遇到问题

用 async/await 来处理异步

用 async/await 来处理异步

async/await使用深入详解

用 async/await 来处理异步