0 异步编程
异步编程和事件监听都是Nodejs特性。
1.Promise
promise对象实际是一个状态机,状态有 pending(进行中)、fullfill(完成)、reject(失败)。当状态改变时,会根据状态,交由 resolve 和 reject 处理。resolve 返回 value,reject 返回 err。
promise 对象同时提供 then() 去声明回调函数,参数为 resolve、reject。
链式调用用法:
|
|
2.async await
promise/then 回调函数之间传参非常麻烦。async/await 把异步写法变成了”同步”写法。async声明的函数会返回一个promise对象。
|
|
await 必须要在声明了 async 函数里面,此时使用 await 会使函数阻塞,等待该 promise 对象 resolve 或 reject。但是这种阻塞几乎不会影响性能,因为它内部所有的阻塞都被封装在一个 Promise 对象中异步执行,这就是 await 必须用在 async 函数中的原因。