Я использую реализацию kriskowal q.последовательная цепочка обещаний с массивом данных, как решить цепочку обещаний?
У меня есть массив объектов данных, каждый с идентификатором.
Мне нужно привязать их последовательно к обещаниям, потому что я соблюдаю правила ограничения скорости, установив его на 1 запрос в секунду.
Однако у меня возникли проблемы с решением обещаний и с моими киосками. То есть Я вижу вывод addVideo, getInfo, retryIfNeeded и задержку в 1 секунду для самого первого видео, но я не вижу ничего такого для последующих видео.
Что я хочу сделать после задержки, чтобы решить эту цепочку, чтобы следующий список обещаний продолжался во втором идентификаторе видео.
Как это сделать? Что я делаю не так? Я искал много на Google, но не нашел решение, чтобы любые предложения приветствуются
Редактировать добавило jsfiddle: http://jsfiddle.net/gpa7ym18/4
var promiseChain = data.items.reduce(function(promise, video) {
video.type = type;
return promise
.then(addVideo)
.then(getInfo)
.then(retryIfNeeded)
.then(function() {
return q.delay(1000)
.done(function() {
NEED TO RESOLVE HERE but there is NO Defered object
to set defer.resolve. How do I resolve this promise chain?
});
});
}, q.resolve(data.items[0]));
Просто 'возвращение', как всегда? Но используйте 'then', никогда' done'. – Bergi
, но я попытался удалить последние .then и .done, но он не разрешил –
, потому что я использую q.resolve (data.items [0]) –