Я читаю на bluebird
и какие проблемы он решает для нативного Promise
API и в настоящее время изучаю, и я продолжаю видеть этот шаблон с ними:
Promise.promisifyAll(needle);
var options = {};
var current = Promise.resolve();
Promise.map(URLs, function (URL) {
current = current.then(function () {
return needle.getAsync(URL, options);
});
return current;
}).map(function (responseAndBody) {
return JSON.parse(responseAndBody[1]);
}).then(function (results) {
return processAndSaveAllInDB(results);
}).then(function () {
console.log('All Needle requests saved');
}).catch(function (e) {
console.log(e);
});
Означает ли это, чтокак только map
будет выполнено (что странно, потому что map
не возвращает обещание, но я предполагаю, что это другой вопрос), оно выполнит 2 then
со вторым, ожидающим завершения первого?