什么是 promise
谈到 promise, 他就有两层意思
- Promise A+ 规范里面的概念
- ES6 的
promise
Promise A+ 规范
他是一个社区规范, 他出现的时间早于 ES6 的 promise, 他是为了解决回调地狱以及异步实现不统一的问题.
简而言之, 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 他们之间是可以互操作的, 同时也可使用 async 和 await.
