Promise
1. 简介
Promise,他是一个对象,(或者说是个类)是用来处理异步操作的,可以让我们写异步调用的时候写起来更加优雅,更加美观便于阅读。顾名思义为承诺、许诺的意思,意思是使用了Promise之后他肯定会给我们答复,无论成功或者失败都会给我们一个答复,所以我们就不用担心他跑了哈哈。所以,Promise有三种状态:
pending(进行中)。
resolved(完成)。
rejected(失败)。
只有异步返回的结构可以改变其状态。
所以,promise的过程一般只有两种:
- pending->resolved
- pending->rejected
2. 简单用法
let p1 = new Promise((resolve, reject) => {
console.log(1)
resolve('ok')
})
p1.then(data => {
console.log(data)
})
console.log(2)
运行结果: 1
、2
、ok
每个 Promise 都有一个 then()方法
2. Promise 生态
- Promise.prototype.catch()
- Promise.all()
- Promise.race()
- Promise.resolve()
- Promise.reject()
这些都是 Promise 提供的一些方法 , 这些方法之后的文章里,我们都会手动的来实现它。
3. 解决什么问题
- 异步并发问题。
- 回调地狱
var say = function (name, callback) {
setTimeout(function () {
console.log(name);
callback();
}, 1000);
}
say("first", function () {
say("second", function () {
say("third", function () {
console.log("end");
});
});
});
//输出: first second third end
下一篇 2. 手写Promise
更多知识点 请关注:笔墨是小舟