检查是否加载了 Component-preload.js

Check if Component-preload.js was loaded

我正在 SAPUI5/OpenUI5 中寻找一种方法来确定 Component-preload.js 是否已加载或原始控制器和视图是否已加载。

到目前为止...

我显然运行没主意了。

不确定这是否是最优的,但我想出了一个小而简单的解决方案:

以下函数尝试加载组件-preload.js 文件

checkComponentPreloaded: function () {
    return new Promise((resolve, reject) => {
        try {
            sap.ui.require(["com/your/namespace/Component-preload"], (CP) => {
                resolve();
            });
        } catch (e) {
            reject();
        }
    });
}

然后在其他地方(例如 Component.js 的初始化)你可以处理承诺并做一些事情(可能在 config/view 模型中设置一些 属性):

this.checkComponentPreloaded()
    .then(() => { Log.error("Preloaded"); })
    .catch(() => { Log.error("Not preloaded"); });

小问题:如果组件预加载可用但为空,它仍会告诉您它已预加载。