1. 手写Promise - 概念

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)

运行结果: 12ok

每个 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
更多知识点 请关注:笔墨是小舟

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。