Как я могу приостановить асинхронную функцию и задать пользователю вопрос, а затем условно продолжить на основе ответа?

#javascript #reactjs #typescript #asynccallback

Вопрос:

Я пытаюсь уменьшить логику в своих компонентах пользовательского интерфейса React. У меня есть многоступенчатый процесс, в котором мне нужно задать вопросы и на основе ответа условно продолжить процесс.

Поток выглядит следующим образом:

  1. Функция пользовательских вызовов
  2. Функция проверяет, одобрено ли действие или нет
  3. Если действие окончательно одобрено, перейдите к шагу 7
  4. Если действие не одобрено, предложите пользователю с вопросом, одобрить ли его окончательно или только один раз
  5. Подождите, пока пользователь ответит на вопрос
  6. Действуйте с постоянным утверждением или единовременным утверждением
  7. Извлекайте данные, вычисляйте материал
  8. Снова сделайте паузу и спросите пользователя, верны ли расчеты
  9. Если пользователь подтвердит завершение процесса и вернет результат

Я думаю, что мне нужно использовать обратные вызовы, но я не уверен, как сделать паузу и передать ответ обратно родительской функции, чтобы продолжить.

Обзор высокого уровня или ключевые слова для поиска в Google очень помогли бы мне!

Спасибо!

Комментарии:

1. Почему вы хотите приостановить его? Это кажется плохим дизайном — почему бы не разделить его на разные части?

2. Вы не делаете все это с помощью одной функции, это множество функций, условно связанных вместе.

3. Почему бы вам просто не создать одно состояние, например const [шаг, setStep] = (1), и в зависимости от этого сделать что-то, а затем изменить это состояние, показать разные элементы или выполнить другую задачу

4. Спасибо, ребята. Я думаю, что я уже был на правильном пути и по какой-то причине подумал, что мне нужно сделать это по-другому. Вы только что подтвердили мой нынешний подход — спасибо!