Я пытался просмотреть некоторые ответы по SO, но я не могу обдумать их.
У меня есть массив строк. Для каждой строки я генерирую обещание. Я хотел бы выполнить их по порядку и прекратить выполнение еще раз, как только будет выполнено какое-то условие.
В псевдокоде это будет примерно так:
let arr = ["a","b","c"];
Promise.map(arr,(arr_element) => {
return new Promise(resolve,reject) {};
}).then((values) => {
for (i=0;i<values.length;i++) {
if (values[i] === "something") {
return i;
}
}
})
Я знаю map
не выполняется последовательно, но я не знаком с другими конструкциями для генерации возвратов в массивах обещаний.
Так что в приведенном выше псевдокоде, предполагая, что values[1] === "something"
, я бы хотел избежать выполнение обещания, связанного с "c"
в исходном строковом массиве.
Любая помощь или указатели приветствуются.
PS: я использую библиотеку bluebird
в nodeJS
.