我有一种情况,我试图在来自Cordova的deviceready事件上初始化我的应用程序。现在,此初始化序列需要执行几秒钟。这导致总的启动时间比期望的要大得多。我的问题是,是否可以与Cordova API和即将出现的插件并行运行此初始化序列?
注意:初始化不利用API或插件的任何内容,因此我不能简单地在onLoad而不是onDeviceReady上立即运行它吗?
最佳答案
假设您应用的初始化使用了promise,您可以将deviceready
侦听器包装在promise中,然后使用Promise.all
与您的侦听器并行初始化:
const deviceReady = new Promise((resolve) => {
document.addEventListener("deviceready", resolve, false);
});
function initializeApp() {
// some async initialization (returns a promise)
}
Promise.all([deviceReady, initializeApp()])
.then(() => {
// ready to start
});