ES6新增Promise概念解决回调地狱问题
1.Promise是一个构造函数
可以创建Promise实例const p = new Promise()
2.new出来的Promise实例对象代表一个异步操作
3.Promise.prototype包含一个.then()方法
故可通过原型链方式访问.then()方法:p.then()
4..then()方法用来预先指定成功和失败的回调函数
p.then(成功的回调函数,失败的回调函数) //成功的回调函数必填,失败的回调函数可选可省略
const p = new Promise();
p.then(result=>{}, error=>{}) // 箭头函数体有大括号默认不返回需要手动return
// 箭头函数体只有一句可省略大括号无大括号默认返回值
5.如果回调函数返回一个Promise实例对象,则可继续.then()操作
const p = new Promise(...);
p.then(result => {
... //做其他操作
return new Promise(...); // 返回一个Promise实例对象后续可接着then()
}).then(result => {
... //做其他操作
return new Promise(...);
}).then(result => {
... //做其他操作
})
在Promise链式操作中发生错误可使用Promise.prototype.cat