【发布时间】:2013-03-08 09:16:38
【问题描述】:
假设我有一个异步函数返回一个承诺。我想链接很多这样的函数,每个函数都有不同的参数。
将执行此数组的函数如下所示:
function executePromiseQueueSync(queue){
var seed = $.Deferred(),
finalPromise;
_reduce(queue, function(memo, promise){
return memo.then(promise);
}, seed.promise());
seed.resolve();
return finalPromise;
}
我看到一些函数接受一组承诺并同步执行它们。问题是我不知道如何创建这样的数组。示例:
var promiseQueue = [];
promiseQueue.push(AsynchEvent(someArg)); // WRONG: this is function call and will be executed immediately
另一个:
var promiseQueue = [];
promiseQueue.push(AsynchEvent); // WRONG: at some point I will have to apply this with arguments
那么 - 有没有办法将返回承诺的函数放入数组而不执行它?
【问题讨论】:
-
看看bind函数。
-
查看已编辑的问题,函数“executePromiseQueueSync”。在这种情况下,bind 对我有什么帮助?
-
Promise 没有被执行,很难确切地知道你想要实现什么。建议您尝试用不假设特定解决方案的简单术语进行解释。
标签: javascript jquery jquery-deferred deferred