4.JavaScript之Promise的底层原理
文章平均质量分 91
Promise是编写代码中程勇的一个异步解决方案, 虽然在开发中我们经常使用他, 但是知道其内部原理能够让我们更清楚一个异步任务是如何被包装的
狄鸠
写给5年后的自己
展开
-
Promise(1) - Promise/A+的使用
Promise的使用 1.promise是啥 抽象理解 promise是JS中进行异步编程的新的解决方案,代替以往的旧的方案(纯回调) 具体理解 Promise是一个构造函数 是用来封装异步操作,并来获取结果的一个函数 2.promise状态 pedding => resolved pedding => rejected Promise 的状态只有这三种,pedding是开始,resolve是成功,reject是失败 无论成功与否,都会有一个结果数据 成功的数据成为原创 2020-06-02 20:31:42 · 182 阅读 · 0 评论 -
Promise(2) - Promise/A+的API
2.Promise的方法 Promise 构造函数,用来创建promise对象 语法 new Promise( function(resolve, reject) {...} /* executor函数 */ ); // 传入promise的是执行器函数,他是同步回调函数 参数 excutor executor是带有 resolve 和 reject 两个参数的同步回调函数函数 Promise构造函数执行时立即调用executor 函数 resolve 和 reject 函数被调用时,分别将pro原创 2020-06-02 20:33:43 · 91 阅读 · 0 评论 -
Promise(3) - 手写Promise/A+的实现
6.手写Promise 整体架构 Es5的写法 ~(function (window) { const PENDING = 'pending' const RESOLVED = 'resolved' const REJECTED = 'rejected' function Promise(executor) { this.state = PENDING this.data = null this.callbacks = [] function resol原创 2020-06-02 20:37:16 · 440 阅读 · 0 评论 -
JavaScript单线程异步机制
浏览器打开会开辟多条线程来支撑浏览器的工作,但是分配给JS进行DOM操作的的线程永远只有一条,所以JS是单线程编程语言,那么JS是怎么进行异步操作代码的呢? 首先来看下面的一段代码 输出的结果 ! 我们把定时器的时间设置成了0,代表只要运行了这段代码就立即进行里边函数的运行,然而并没有,而是先把主线程上的 console.log('5') 执行之后才挨个运行定时器 在JS中,所有任务可以分...原创 2020-04-28 23:53:40 · 167 阅读 · 0 评论 -
异步之 async 与 await
async return 的返回值为 Promise Promise对象的结果由async函数执行的返回值决定 语法 // 定义async函数 async function name([参数1, 参数2...]) { 函数体 } 描述 使用async定义函数,函数内部可以使用await关键字,并且该异步函数会返回一个Promise 状态为 resolved => return普通值 | 成功的Promise 状态为 rejected => 函数内部错误 | 失败的Prom原创 2020-06-02 20:41:43 · 181 阅读 · 0 评论