Я выполняю назначение переменной в неасинхронной функции, но значение переменной назначения не изменяется после выполнения оператора присваивания.
ctx
- это контекст Koa2. Этот код запускается после получения ответа http. Я пытаюсь обновить контекст значениями объекта ответа (http).
Ни ctx
, ни ctx.response
не заморожены.
Я ожидаю, что ctx.response.status
будет равно 200
в консоли AFTER.log
Я подозреваю, что это своеобразное поведение Node, но я не очень хорошо знаю Node.
Что я здесь не так делаю?
console.log('BEFORE=ctx.response.status='+ctx.response.status+'/response.status='+response.status)
ctx.response.status = response.status
console.log(' AFTER=ctx.response.status='+ctx.response.status+'/response.status='+response.status)
ctx.response.timestamp = response.timestamp
ctx.response.body = response.body
Это был мой вывод. Обратите внимание на теги ДО / ПОСЛЕ:
BEFORE=ctx.response.status=404/response.status=200
AFTER=ctx.response.status=404/response.status=200