У меня такой шаблон: (где (Пи) - разные обещания)

// STEP 1 : Show the help modal and the instruction modal after.
P1.then(() => {
  return P2
})

// STEP 2 : Start calibration 
.then(() => {
  return P3;
})

// STEP 3 : Wait until all points have been clicked on
.then(() => {
  doSomething();
});

Я сделал что-то вроде государственной машины. В конце, в doSomething () я хочу вернуться к своему второму, а затем, ЕСЛИ калибровка не удалась, или завершить цепочку в противном случае.

Не знаю, как это сделать ... Есть идея?

0
Paul Serre 1 Дек 2020 в 18:14

1 ответ

Лучший ответ

Как насчет чего-то вроде этого:

const steps = {
  one: async () => {
    await something();
    steps.two();
  }
  
  two: async () => {
    try {
      const results = await somethingElse();
      steps.three(results);
    } catch(e) {
      // TODO display error message
      steps.one();
    }    
  }
  
  three: async () => {
    // do whatever
  }
}

Не знаю, может ли такая структура вам помочь.

0
TKoL 1 Дек 2020 в 15:24