我有一个类(LoadClass),它在页面加载时进入,并在我的情况下打开一个SQLite数据库并执行几个查询。现在我希望其他组件只在LoadClass之前完成加载数据库时执行代码,但这必须随时发生。出于显而易见的原因,我只想打开我的数据库一次。它应该是这样的:
class LoadClass {
// This executes directly on page load
constructor() {
this.load_my_database().then(function() {
// My database finished loading, now my buttons may work.
})
}
}
function user_presses_button() {
LoadClass.ready().then(function() {
// Only now something
})
}
我将如何使用Promises进行此操作?
答案 0 :(得分:0)
class LoadClass {
private _ready_promise;
constructor() {}
// This executes directly on page load
page_load() {
this._ready_promise = this.load_my_database();
}
load_my_database() {
return new Promise(function(resolve) {
// Do something...
// Now my database finished loading, everything else may work.
return resolve();
})
}
ready() {
return this._ready_promise;
}
}
function user_presses_button() {
LoadClass.ready().then(function() {
// Only now something
})
}