hapijs v18 отправляет ответ до завершения обработчика - PullRequest
0 голосов
/ 21 октября 2019

Я хочу отправить ответ от моего обработчика hapijs до его завершения. Я попытался h.response().code(204).takeover(), однако ответ, по-видимому, не будет отправлен, пока он не будет явно возвращен из обработчика и документация предлагает то же самое. Я хочу немедленно вернуть 204, а затем продолжить выполнение кода в обработчике. Есть ли способ продолжить обработку после отправки ответа? Документация для request.generateResponse () предполагает, что интерфейс ответа можно использовать, но я думаю, что это просто ошибка документации, поскольку интерфейс ответа ссылается на документацию инструментария ответа.

1 Ответ

0 голосов
/ 22 октября 2019

Возможно продолжить выполнение асинхронного кода после отправки ответа, если выполнение асинхронного кода вызвано до того, как ответ получен.

async function someAsyncCode() {
  // Do processing
}

(request, h) => {
   someAsyncCode()
   return h.response('hello worl').code(204).takeover()   
}

Поскольку вы не ожидаете или не возвращаете обещание,выполнение функции "someAsyncCode" не будет блокировать поток выполнения.

...