为了账号安全,请及时绑定邮箱和手机立即绑定

promiseAnimate函数里的resolve和reject如何使用

new Promise的时候,匿名函数的参数分别是resolve和rejecte,这俩参数是如何被定义的,为什么可以直接在函数中直接调用:

正在回答

2 回答

向上追踪调用:

Promise.prototype._resolveFromExecutor里

    var r = this._execute(executor, function (value) {
        promise._resolveCallback(value);
    }, function (reason) {
        promise._rejectCallback(reason, synchronous);
    });

executor后面的两个匿名函数就是resolve和reject的具体实现

0 回复 有任何疑惑可以回复我~
#1

慕用8116058 提问者

谢谢,我这看源码的意识太差了
2016-06-05 回复 有任何疑惑可以回复我~

resolve和reject这两个匿名函数是bluebird内部提供的, Node6.2.1版本实现了promise对象, 可以直接new promise无需require, 同样由node内部提供.  在bluebird里promise.js文件里搜索"executor"有其实现

executor就是new Promise(executor)里的匿名函数

Promise.prototype._execute = function(executor, resolve, reject) {
   try {
       executor(resolve, reject);
   } catch (e) {
       return e;
   }
};

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
进击Node.js基础(二)
  • 参与学习       76755    人
  • 解答问题       226    个

本教程带你攻破 Nodejs,让 JavaScript流畅运行在服务器端

进入课程

promiseAnimate函数里的resolve和reject如何使用

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信