我正在創建一個類,它從數據庫中檢索信息並適當地設置用戶變量。在Javascript中是一個異步類是一個好主意嗎?
我的問題是,我使用的數據庫API是異步的,這成爲一個問題,因爲該類在「完全構造」(也就是說構造函數已返回)之前變得可訪問。
所需的同步方法
class User{
constructor(sql){
this.name = Database.selectQuery(sql);
}
}
var x = new User(statement);
console.log(x.name); // returns name
當前異步方法
class User{
constructor(sql){
Database.selectQuery(sql, this, function(data, obj){
obj.name = data;
});
}
}
var x = new User(statement);
console.log(x.name); // returns undefined
我知道我可以在回調添加到我的構造,以使其異步工作,但此一個好主意?
如果您在節點中編寫代碼,則正在編寫異步代碼。您正在使用回調或承諾。 –
歡迎來到「回撥地獄」。 –