使用 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