我在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
有人可以建议吗?
答案 0 :(得分:1)
这是一个已知问题,目前zone.js
不支持本地async/await
。