Skip to content

什么是 promise

谈到 promise, 他就有两层意思

Promise A+ 规范

他是一个社区规范, 他出现的时间早于 ES6promise, 他是为了解决回调地狱以及异步实现不统一的问题.

简而言之, promise 就是一个带有 then 方法的函数/对象, 下面的例子就被认为是一个 promise, 当然 then 还需要满足 A+ 规范中的诸多细节. 此外, 满足规范的 promise 具有互操作性.

javascript
{
  then(){}
}

function bar(){}
bar.then = function(){}

ES6 构造函数 promise

其就是对 promise A+ 规范的一种实现, 准确来说, 通过构造函数 promise 创建的对象是 promise, 因为他具有满足规范的 then 方法.

ES6 中的 promise.catch promise.finally promise.all 其实不属于规范的内容.

回答示例

A+ 规范中 promise 就是一个带 then 方法的函数或对象;
ES6 中, 他是一个构造函数, 通过这个构造函数创建的实例, 满足了 promise A+ 规范.
满足规范的 promise 他们之间是可以互操作的, 同时也可使用 asyncawait.