Promise.prototype.then() Proise实例的then方法是定义在原型对象Promise.prototype上的,它的作用是为Promise实例添加状态改变时的回调函数. 该方法可以接收两个回调函数作为参数,其中第二个回调函数是可选的.第一个回调函数是 Promise 对象的状态变为 Resolved 时调用,第二个回调函数是 Promise 对象的状态变为 Rejected 时调用. 下面从以下几点进行说明: then 方法返回的是一个Promise实例,但是需要注意的是…
要是人没有梦想,跟咸鱼又有什么两样了?一直恐惧读源码,哪怕是一个简单的库也是读百来行遇到难点就放弃了.对于新的东西也仅仅是知道它拿来干什么,社区资源在哪里,要用时就突击文档资源使用即可.未有过深入之心,亦或者有过深入之心两三天就废掉. 这两日安静下来思考,觉得自己毛病不少,却还是不甘于平庸.那么只能选择面对自己做出改变,越是恐惧,越是应该面对.下一篇就来个es6-promise代码理解好了.加油吧少年! 3.1 Promise.reject() Promise.reject()静态方法,这个方法…
Promise是一个构造函数,它有resolve,reject,race等静态方法;它的原型(prototype)上有then,catch方法,因此只要作为Promise的实例,都可以共享并调用Promise.prototype上面的方法(then,catch) Promise的使用语法: new Promise( function(resolve,reject){} //或 (resolve, reject) => {} //es6箭头函数 ); 在实例化Promise时需要传入一个函数方法作…
参考 http://www.tuicool.com/articles/RzQRV3 var PENDING = undefined, FULLFILLED = 1, REJECTED = 2; var Promise = function(resolver) { var promise = this; this.value; this.reason; this.status = PENDING; this.resolver; this.rejecter; var resolve = functi…
"I'm Captain Jack Sparrow" 加勒比海盗5上映,为了表示对杰克船长的喜爱,昨天闪现了几次模仿船长的走路姿势(哈哈哈,简直妖娆). 为了周天能去看电影,要赶紧做完手上的活儿,比如总结Promise的方法. 2 Promise基本方法简介 Promise提供了哪些方法了?大招就是放图在控制台输出Promise. Promise构造函数上实现了all,race,reject,resolve.Promise构造函数的原型上实现了then,catch的方法.在构造函数原型…
只考虑成功时的调用,方便理解一下promise的原理promise的例子: 1. 接下来一步步实现一个简单的promise step1:promise 接受一个函数作为构造函数的参数,是立即执行的,并且返回个resolve函数作为该函数的回调 function CPromise(fun){ function resolve(){ } fun(resolve); } step2: promise的then方法接受一个函数作为参数,并且该函数的参数值,来自于resolve方法中传入的参数,说明res…
Function.prototype.bind()方法 bind() 方法的主要作用就是将函数绑定至某个对象,bind() 方法会创建一个函数,函数体内this对象的值会被绑定到传入bind() 函数的值. 例如,在 f() 函数上调用 bind() 方法并传入参数 obj ,即 f.bind(obj) ,这将返回一个新函数, 新函数会把原始的函数 f() 当做 obj 的方法来调用,就像 obj.f() 似的,当然这时 f() 函数中的 this 对象指向的是 obj . 简单使用情形一 va…
我又又又回来了,最近真是累的跟狗一样,急需一个大保健回复一下子精力 我现在是一边喝着红牛一边写着博客,好了好了,不扯了,回归整体好吧 先简单来说一下啥是promise吧 它是什么?Promise是一个方案,用来解决多层回调嵌套的解决方案.它现在是ES6的原生对象.    干嘛用的?可以把一个多层嵌套的同步.异步都有回调的方法,给拉直为一串.then()组成的调用链. 解决啥问题?多层嵌套的回调方法中,如果同时存在同步.异步的方法,那么实际执行顺序会混乱.不好调试不好维护 现在我们再来说一说自己写…
转载自:https://www.cnblogs.com/zztt/p/4122352.html Function.prototype.bind()方法 bind() 方法的主要作用就是将函数绑定至某个对象,bind() 方法会创建一个函数,函数体内this对象的值会被绑定到传入bind() 函数的值. 例如,在 f() 函数上调用 bind() 方法并传入参数 obj ,即 f.bind(obj) ,这将返回一个新函数, 新函数会把原始的函数 f() 当做 obj 的方法来调用,就像 obj.f…
// 为Promise添加finally方法支持 Promise.prototype.finally = function (callback) {   let P = this.constructor;   return this.then(     value => P.resolve(callback()).then(() => value),     reason => P.resolve(callback()).then(() => {       throw reaso…