async和await
async:异步(无等待)
await:等待(是为了同步)
一、await 关键字只在 async 函数内有效。
async/await 的目的为了简化使用基于promise的API时所需的语法(比如then)。
async 函数一定会返回一个promise对象。如果一个async函数的返回值看起来不是promise,那么它将会被隐式地包装在一个promise中。
promise 是异步无等待的。当没有使用 await 语句执行 async 函数时,它是非阻塞的。
async function foo() {
return 1
}
等价于
function foo() {
return Promise.resolve(1)
}
二、async函数可能包含0个或者多个await表达式。
await 表达式会暂停整个 async 函数的执行进程并出让其控制权,只有当其等待的基于promise的异步操作被兑现或被拒绝之后才会恢复进程。
promise的解决值会被当作该await表达式的返回值。await等待的就是解决值。
https://jeeweixin.com/wiki/1409622665592864/1474465561051232
网友评论