变量赋值没有分配给变量——我做错了什么?
Variable assignment does not assign to variable - what am I doing wrong?
我在非异步函数中执行变量赋值,但目标变量的值在赋值语句运行后没有改变。
ctx
是一个 Koa2 上下文。一旦收到 http 响应,此代码就会运行。我正在尝试使用 (http) 响应对象中的值更新上下文。
ctx
和 ctx.response
都没有被冻结。
我希望 ctx.response.status
在 'AFTER' console.log
中等于 200
我怀疑这是 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
This was my output. Note the BEFORE/AFTER tags:
BEFORE=ctx.response.status=404/response.status=200
AFTER=ctx.response.status=404/response.status=200
事实证明,这个问题是由之前的中间件调用 next()
引起的 没有 await 关键词
我不是 Node 或 Koa 方面的专家,但从研究来看,状态 属性 变得不可变是有条件的。
我在非异步函数中执行变量赋值,但目标变量的值在赋值语句运行后没有改变。
ctx
是一个 Koa2 上下文。一旦收到 http 响应,此代码就会运行。我正在尝试使用 (http) 响应对象中的值更新上下文。
ctx
和 ctx.response
都没有被冻结。
我希望 ctx.response.status
在 'AFTER' console.log
200
我怀疑这是 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
This was my output. Note the BEFORE/AFTER tags:
BEFORE=ctx.response.status=404/response.status=200
AFTER=ctx.response.status=404/response.status=200
事实证明,这个问题是由之前的中间件调用 next()
引起的 没有 await 关键词
我不是 Node 或 Koa 方面的专家,但从研究来看,状态 属性 变得不可变是有条件的。