Я обновляю сервис до hapi 17, и я столкнулся с проблемой, которую я не знаю, как портировать на новый hapi.
Мой метод-обработчик выглядел так (на основе функций генератора):
removeItem(request, reply) {
function* main() {
const { id } = params;
const removedItem = yield this.apiService.removeComment(id);
reply(removedItem);
this.activityStream
.publishActivity('ITEM_DELETE', item)
.catch(e => this.errorHelper.handleError(e));
}
co(main.bind(this))
.catch(e => reply(this.errorHelper.handleError(e)));
}
Вот попытка портировать его на hapi17, который не работает - он выбрасывает 500, хотя все действия прошли хорошо:
async removeItem(request, h) {
try {
const { id } = params;
const removedItem = await this.apiService.removeComment(id);
h.response(removedItem);
this.activityStream
.publishActivity('ITEM_DELETE', item)
.catch(e => this.errorHelper.handleError(e));
} catch(err) {
return this.errorHelper.handleError(err)
}
}
}
Вы знаете, как это исправить в hapi 17, чтобы поведение было таким же? То есть ответ отправляется пользователю до завершения последнего действия.