什么是Promise? Promise就是一个单词,没错吧。嗯其实我们去说Promise的时候,涉及到两层含义。
1. Promisesaplush 规范
这个规范出现的比较早,出现在
ES6之前,而且是一个民间标准。主要是处理回掉地狱和异步处理不统一的问题。在2015年之前,很多第三方库都接纳了这一规范。
里面介绍很清楚了,它就是一个带有then方法的对象。
const p ={
then:function(){}
}
这个对象有一个then方法,那对象p就是Promise。又或者说有一个构造函数A,里面有个then方法,那这个构造函数也是一个Promise。
那这个篇规范就在告诉你then方法应该实现怎样一个功能,应该接收怎么的参数,里面应该如何处理,应该返回什么。
一些第三方库在处理异步环节上都吸纳了这套规范,直到ES6出现。
2.ES6的Promise
ES6搞了一个构造函数Promise,那这个构造函数这前面的规范有什么关联?那就是通过new创建出来的对象是满足Promisesaplsh规范的。它除了满足这个规范之外,还加了其他东西,比如catch、finalyly、all等。在这个规范里,它说了只要满足这个规范,那就是Promise,只要是个Promise,就能够互相操作。