Предположим, у меня есть функция async, возвращающая обещание. Я хотел бы связать много этих функций, каждый из которых имеет разные аргументы.Как построить массив обещаний jquery?
Функция, которая будет выполнять этот массив выглядит следующим образом:
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] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind). –
Посмотрите на отредактированный вопрос, функция "executePromiseQueueSync". Как привязка поможет мне в этом случае? – mnowotka
Обещания не выполняются, и трудно точно знать, чего вы пытаетесь достичь. Предложите попытаться объяснить в простых терминах, которые не предполагают конкретного решения. –