#node.js #axios #callback #stream #progress-bar
Вопрос:
Я пытаюсь создать функциональность, в которой несколько вещей происходят в одном запросе API.
Шаг 1. Файл добавляется в корзину S3
Шаг 2. Файл кодируется
Шаг 3. Обновите несколько записей в базе данных
Я могу отправить ответ на интерфейс после завершения всех 3 шагов.
Но мне нужно показать индикатор выполнения на шаге 1 в начале
Пользовательские сообщения загрузчика во время шага 2
Всплывающее окно «Задание выполнено» после шага 3.
Как мне постоянно прослушивать события сервера или обратные вызовы?
Я использую VueJS в интерфейсе для выполнения запроса API с помощью Axios.
Я использую NodeJS с express в бэкэнде.
Я посмотрел на пакет npm progress-stream, но обнаружил, что он сбивает с толку в том, как его использовать с express.
Как создать событие прогресса с пользовательским статусом «Ожидание», «В процессе» (процент выполнения), «Завершено»?
Может ли кто-нибудь направить меня в правильном направлении?
Комментарии:
1. Одним из подходов может быть использование веб-сокета (сокет. ввод-вывод) соединение. Для каждого шага вы будете уведомлять пользовательский интерфейс/интерфейс сообщением сокета. Возможно, вы не будете поддерживать http-соединение так долго.
2. @ShamsNahid Я чувствовал, что сокеты будут излишними, не могли бы вы предложить какую-либо другую альтернативу?
3. Без веб-сокета мы не можем напрямую отправлять ответ в пользовательский интерфейс. Таким образом, используя http-соединение, подход может заключаться в непрерывном вызове API с задержкой в несколько секунд и соответствующей отправке ответа. Например, выполните вызов с интервалом в 2 секунды и повторяйте его до тех пор, пока операция не будет завершена.