使用 await 命令后丢失 zone.js 属性
Losing zone.js properties after using await command
我在我的 AdonisJs 项目中使用 zone.js 来创建执行上下文。我有一个创建区域的中间件,如下所示:
async handle ({ request, response }, next) {
let token = jwtDecode( request.header('Authorization') )
// Create a zone so we have execution context throughout the flow
return Zone.current.fork({
name: Math.random(),
properties: {
username: token.username,
user_id: token.sub
}
}).run( async () => {
// call next to advance the request
await next()
})
}
在我的控制器中,我可以使用
访问我的区域属性
let username = Zone.current.get('username')
然而,当我使用 await
命令时,我失去了对区域属性的访问权限,所有这些都是未定义的。例如:
作品
let username = Zone.current.get('username') // ALL OK
let order = await Order.find(params.id);
不工作
let order = await Order.find(params.id);
let username = Zone.current.get('username') // UNDEFINED
有人可以指点一下吗?
这是一个已知问题,目前 zone.js
不支持原生 async/await
。
我在我的 AdonisJs 项目中使用 zone.js 来创建执行上下文。我有一个创建区域的中间件,如下所示:
async handle ({ request, response }, next) {
let token = jwtDecode( request.header('Authorization') )
// Create a zone so we have execution context throughout the flow
return Zone.current.fork({
name: Math.random(),
properties: {
username: token.username,
user_id: token.sub
}
}).run( async () => {
// call next to advance the request
await next()
})
}
在我的控制器中,我可以使用
访问我的区域属性let username = Zone.current.get('username')
然而,当我使用 await
命令时,我失去了对区域属性的访问权限,所有这些都是未定义的。例如:
作品
let username = Zone.current.get('username') // ALL OK
let order = await Order.find(params.id);
不工作
let order = await Order.find(params.id);
let username = Zone.current.get('username') // UNDEFINED
有人可以指点一下吗?
这是一个已知问题,目前 zone.js
不支持原生 async/await
。