async function声明将定义一个返回 AsyncFunction 对象的异步函数。
当调用一个async function时,会返回一个Promise对象。当这个 async 函数返回一个值时,Promise 的 resolve 方法会负责传递这个值;当 async 函数抛出异常时,Promise 的 reject 方法也会传递这个异常值。
一般来说await用来等待Promise对象,但它实际可以等待任意表达式的结果,所以,await 后面实际是可以接普通函数调用或者直接量的。await 关键字仅仅在 async function中有效。如果在 async function函数体外使用 await ,你只会得到一个语法错误(SyntaxError)。
async/await的具体使用场景是需要将多个异步函数同步执行时,将异步函数使用Promise对象包装,在async函数中使用await关键词调用,这样可使异步函数按照声明的顺序执行。同时,因为函数使用async关键词修饰,调用函数本身仍然是异步方法,即将多个异步方法合并为一个异步方法。
实际工作中用到的场景:
Promise的最佳实践:
Promise.all()方法将同时发出多个请求,等待耗时最长的异步方法执行完成时返回。
网友评论