从语法上来说: Promise是一个构造函数,用来生成Promise实例
从功能上来说: Promise对象用来封装一个异步操作并可以获取其成功/ 失败的结果值
旧方案就是单纯使用的回调函数
Promise是JS中进行异步编程的新解决方案
不便于维护,代码可读性差,错误处理不方便
resolve
和 reject
都是函数类型的参数
resolve
: 成功时调用reject
: 失败时调用异步操作完成后的结果处理, 通过 then
方法来指定成功/失败的回调函数
nodejs
中内置的 util.promisify
方法可以将一个遵循异常优先的回调风格的函数转换为一个返回 Promise
的函数
实例对象中的一个属性 PromiseState
只有这两种,pengding -> resolved
或 pengding -> rejected
, 一旦状态改变,就不会再变,无论成功还是失败,都会有一个结果值。
实例对象中的另一个属性 PromiseResult
保持着对象成功或失败的结果值