課程
/前端開發(fā)
/Node.js
/進擊Node.js基礎(chǔ)(二)
new Promise的時候,匿名函數(shù)的參數(shù)分別是resolve和rejecte,這倆參數(shù)是如何被定義的,為什么可以直接在函數(shù)中直接調(diào)用:
2016-05-31
源自:進擊Node.js基礎(chǔ)(二) 1-3
正在回答
向上追蹤調(diào)用:
Promise.prototype._resolveFromExecutor里
? ? var r = this._execute(executor, function (value) {? ? ? ? promise._resolveCallback(value);? ? }, function (reason) {? ? ? ? promise._rejectCallback(reason, synchronous);? ? });
executor后面的兩個匿名函數(shù)就是resolve和reject的具體實現(xiàn)
慕用8116058 提問者
resolve和reject這兩個匿名函數(shù)是bluebird內(nèi)部提供的, Node6.2.1版本實現(xiàn)了promise對象, 可以直接new promise無需require, 同樣由node內(nèi)部提供. ?在bluebird里promise.js文件里搜索"executor"有其實現(xiàn)
executor就是new Promise(executor)里的匿名函數(shù)
Promise.prototype._execute = function(executor, resolve, reject) { ? ?try { ? ? ? ?executor(resolve, reject); ? ?} catch (e) { ? ? ? ?return e; ? ?}};
舉報
本教程帶你攻破 Nodejs,讓 JavaScript流暢運行在服務(wù)器端
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-06-04
向上追蹤調(diào)用:
Promise.prototype._resolveFromExecutor里
? ? var r = this._execute(executor, function (value) {
? ? ? ? promise._resolveCallback(value);
? ? }, function (reason) {
? ? ? ? promise._rejectCallback(reason, synchronous);
? ? });
executor后面的兩個匿名函數(shù)就是resolve和reject的具體實現(xiàn)
2016-06-04
resolve和reject這兩個匿名函數(shù)是bluebird內(nèi)部提供的, Node6.2.1版本實現(xiàn)了promise對象, 可以直接new promise無需require, 同樣由node內(nèi)部提供. ?在bluebird里promise.js文件里搜索"executor"有其實現(xiàn)
executor就是new Promise(executor)里的匿名函數(shù)
Promise.prototype._execute = function(executor, resolve, reject) {
? ?try {
? ? ? ?executor(resolve, reject);
? ?} catch (e) {
? ? ? ?return e;
? ?}
};