使用等待命令后丢失zone.js属性

时间:2018-11-01 11:18:07

标签: node.js adonis.js zone.js

我在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

有人可以建议吗?

1 个答案:

答案 0 :(得分:1)

这是一个已知问题,目前zone.js不支持本地async/await