Gle*_*ift 5 javascript jquery design-patterns promise ecmascript-harmony
看看这个 jQuery 代码:
var promise = new Deferred(),
some;
some = function(promise) {
// do cool things
promise.resolve();
};
promise.then(/* callback cool things */);
// init everything
some(promise);
Run Code Online (Sandbox Code Playgroud)
我不确定这种方法的架构正确性,但我使用它很长时间并且对我来说很方便。
在原生 JavaScript 中我不能使用这种方法。构造函数new Promise()需要回调参数,因此我无法将实例Promise作为参数传递。
所以我的问题是:如何预定义 JavaScript 原生 Promise,将其作为参数传递给函数和解析?
执行流程会略有不同,但基本上以相同的方式工作:
function some(resolve, reject) {
resolve();
}
var promise = new Promise(some);
promise.then(/* callback cool things */);
Run Code Online (Sandbox Code Playgroud)
它不是some传递 Promise 本身,而是传递resolve和reject函数。所以,依赖关系正好相反。