一进来 我们开始执行 executor函数 传递两个参数 再调用 then 方法 ,then 方法里面有 OnResolve方法,OnReject 方法
在then 方法中,我们一开始的状态是pending 然后根据 状态的不同 调用不同的函数,
在两个不同的函数中 我们 进行判断 因为状态一开始都是有 pending = > success 或者 pending =>fail
判断 时修改 状态 和 显示值

function  Promise(executor) {let  self  = this;self.value = null;self.reason = null;//设置默认状态self.status = 'pending'//成功函数
    function  resolve(value) {if(self.status=='pending') {self.status = 'success';// console.log(self.value);self.value =  '运行成功了'}};//失败函数
    function  reject(reason) {if(self.status == 'pending') {self.status = 'fail';self.reason = '运行失败了'}}//默认立即执行函数 传递两个参数
    executor(resolve,reject);
}
Promise.prototype.then =  function(OnResolve,OnReject) {console.log(this.value)if(this.status == 'success') {OnResolve(this.value);}if(this.status =='fail') {OnReject(this.reason);}
};
module.exports= Promise;
//一进来 我们开始执行 executor函数 传递两个参数 再调用 then 方法 ,then 方法里面有  OnResolve方法,OnReject 方法
// then 方法中,我们一开始的状态是pending  然后根据 状态的不同 调用不同的函数,
// 在两个不同的函数中 我们 进行判断 因为状态一开始都是有 pending  = >  success 或者 pending =>fail
// 判断 时修改 状态 和 显示值

运行:

开始运行了
运行成功了
success 运行成功了
运行结束

这里还没有进行异步的处理

转载于:https://www.cnblogs.com/guangzhou11/p/11299452.html

理解Promise (2)相关推荐

  1. 大白话讲解Promise(二)理解Promise规范

    上一篇我们讲解了ES6中Promise的用法,但是知道了用法还远远不够,作为一名专业的前端工程师,还必须通晓原理.所以,为了补全我们关于Promise的知识树,有必要理解Promise/A+规范,理解 ...

  2. es5如何实现promise_彻底理解Promise对象——用es5语法实现一个自己的Promise(上篇)...

    众所周知javascript语言的一大特色就是异步,这既是它的优点,同时在某些情况下也带来了一些的问题.最大的问题之一,就是异步操作过多的时候,代码内会充斥着众多回调函数,乃至形成回调金字塔.为了解决 ...

  3. 理解Promise的3种姿势

    对于Promise,也许你会用了,却并不理解:也许你理解了,却只可意会不可言传.这篇博客将从3个简单的视角理解Promise,应该对你有所帮助. 示例1中,asyncFunc()函数返回的是一个Pro ...

  4. 通俗浅显的理解promise中的then

    通俗浅显的理解promise中的then 先看一下下面4个Promise到底有什么区别呢? 执行第一个方法: 执行第二个方法: 执行第三个方法: 执行第四个方法: 文章原文出处:博主petruslaw ...

  5. 深入理解Promise并写一个符合Promise a+规范的Promise代码

    深入理解Promise并写一个符合Promise a+规范的Promise代码 关于Promise函数可以参考我写的这篇文章https://www.cnblogs.com/qiaohong/p/770 ...

  6. ES6——举个例子理解Promise的原理和使用

    1. Promise 之前 1.1 回调函数 回调函数:把函数A当作参数传递给另一个函数B调用,那么A就是回调函数. 一些例子 具名回调 function 你有几只狗(fn){fn('一只狗') } ...

  7. 理解promise、async 和await之间的执行关系

    先看下面的例子 console.log('script start'); async function async1(){console.log('async1 start');await async ...

  8. 一篇文章理解Promise原理

    前提掌握知识: 微任务包括: MutationObserver.Promise.then()或reject().Promise为基础开发的其它技术,比如fetch API.V8的垃圾回收过程.Node ...

  9. 理解promise、promise.all、promise.race

    文章目录 promise promise.all promise.race 注意 总结 promise Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息. Promise 对象有以 ...

  10. 理解Promise (4)

    then 方法必须 返回一个新的promise promise2 = promise1.then(onFulfilled, onRejected); 新的Promise 必须返回传递两个方法  onF ...

最新文章

  1. 面部识别辅助监控系统 人工智能为城市安全保驾护航
  2. 打包android阴影不见,Android无pading超简单超实用阴影解决方案
  3. 微软推出 VS Code 新特性,为 TypeScript 和 JavaScript 用户提供 AI 辅助开发功能
  4. linux上传挂载镜像文件,linux系统中挂载img镜像文件
  5. [概率论]如何通俗地理解“最大似然估计法”?
  6. EverWeb for Mac(网页设计软件)v3.5.1中文版
  7. HP服务器固件升级(ILO及bios升级:实操版)
  8. ADC芯片CS1242用在电子秤单片机上面
  9. winzip15.0注册码
  10. python 修改ip地址
  11. WebRTC的拥塞控制和带宽策略
  12. 毕生精力总结的电脑技巧
  13. CSDN是什么???
  14. VisualC++逆序存放
  15. HarmonyOS阶段测试(HarmonyOS应用程序框架揭秘)(4 )
  16. 工业互联网的前世今生 | 初探工业互联网
  17. 牛奶可乐经济学之Q13:为什么“几乎”全新的二手车,售价比全新的车低得多?
  18. Grafana面板(panel):数据处理(Transformation)---一个奇怪的功能!
  19. java 傅里叶变换 频谱_傅里叶变换分析频谱(FFT)
  20. Oracle之字符串去重统计

热门文章

  1. 曾经案例中问题 与 工厂模式解耦
  2. do……while 循环
  3. Matlab处理JSON数据
  4. MyBatis分页插件PageHelper使用练习
  5. leetcode C++ 39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 c
  6. 使用 MWC V2.5 中的 MPU6050中的DMP进行计算姿态(转载)
  7. C#串口上位机软件--IOT串口调试精灵
  8. 用DMA方式从串行USART口连续接收数据,怎样确认收到一个完整的包讨论
  9. CTFshow php特性 web111
  10. matlab绘图 subplot函数使用方法