Эй, ребята, я пытаюсь остановить цепочку обещаний на полпути (после улова). Поэтому после того, как в первом обещании произошла ошибка, поймать ее поймает, но я не хочу, чтобы цепочка продолжалась. Я использую синюю птицу. Как мне это сделать?Остановить цепочку обещаний посредине
getRedirectedURL(url).then(function(url) {
console.log(1);
url = domainCleanse(url);
sql = mysql.format(select, url);
return [ url, mysqlQuery(sql) ];
}).catch(function(error) {
console.log(2);
console.error(error);
socket.emit('error:unreachable', url + ' was unreachable');
}).spread(function(url, rows) {
console.log(3);
if(_.isEmpty(rows[0])) {
socketList.push({
url: url,
ttl: _.now(),
socket: socket,
added: false
});
} else {
socket.emit('done', mapResults(rows[0]));
}
}).catch(function(error) {
console.log(4);
console.error(error);
socket.emit('error', 'We could not reach ' + url + ' at this time.');
});
Возможный дубликат [Обработка множественных уловов в цепочке обещаний] (http://stackoverflow.com/questions/26076511/handling-multiple-catches-in-promise-chain) – Bergi
возможно также см. [Перерыв в цепочке обещаний и вызов функция, основанная на шаге в цепочке, где она сломана] (http://stackoverflow.com/q/20714460/1048572) – Bergi