gpt4 book ai didi

javascript - Aureliajs 在 App Constructor 上等待数据

转载 作者:搜寻专家 更新时间:2023-11-01 04:28:16 25 4
gpt4 key购买 nike

我正在使用 aureliajs 开发应用程序。开发过程已经开始好几个月了,现在,后端开发人员想要对他们的服务进行版本控制。所以我有一个网络服务可以调用以获取每个服务器端(网络 API)应用程序的版本,然后,对于进一步的请求,调用正确的 API 地址,包括它的版本。

因此,在 app.js 中,我请求系统元数据并将其存储在某处。但是一些组件在这个请求完成之前就已经初始化了。所以他们不会发现版本初始化和请求错误的服务器数据。

我想让 app.js 构造函数等待直到检索到此数据。例如这样的事情:

export class App {
async constructor(...) {
...

await this.initializeHttp();

...
}

initializeHttp(){
// get the system meta from server
}
}

但是这个解决方案不适用。因为构造函数不能异步。那么,在检索到系统元数据之前,我应该如何阻止该作业?

更新

问题不是 this question 的重复问题.在那个问题中,外部类中有一个地方等待初始化工作;虽然在我的问题中,主要问题是,把这个等待放在哪里。所以问题不仅仅是关于构造函数中的异步函数,而是关于在异步作业解决之前阻止所有 aurelia 作业。

最佳答案

Aurelia 提供了很多方法来处理异步流。如果您的自定义元素是路由组件,那么您可以利用 activate 生命周期返回一个 promise 并异步初始化 http 服务。

否则,您可以在完成初始化之前使用 CompositionTransaction 进一步停止进程。您可以在 https://tungphamblog.wordpress.com/2016/08/15/aurelia-customelement-async/ 查看初步示例

您还可以利用 configure 函数的异步特性来引导 Aurelia 应用程序在那里进行初始化:

export function configure(aurelia) {
...
await aurelia.container.get(HttpServiceInitializer).initialize();
}

关于javascript - Aureliajs 在 App Constructor 上等待数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55220012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com