背景:期望在新建类时调后台接口对类进行配置,配置成功后才可以执行其他操作。
尝试封装类的构造函数为async/await
,报错
Class constructor may not be an async method
原因:async
函数返回值为promise
,而构造函数返回值为object
,同一个函数不可能返回值同时为promise
和object
解决:参考 jQuery's
ready()
方法
1. 类实现
class myClass {
constructor () {
}
async ready (callback) {
await yourHttpRequest();
// 回调函数绑定作用域
callback.bind(this)();
}
}
2. 调用
const myObj = new myClass();
myObj.ready(function() {
// 保证配置完才能执行其他操作
});
参考:https://stackoverflow.com/questions/43431550/async-await-class-constructor
发表回复