Остановить последовательное выполнение обещаний в Javascript на основании какого-либо условия - PullRequest
0 голосов
/ 21 апреля 2020

Я пытался просмотреть некоторые ответы по 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.

...