【发布时间】:2018-09-16 14:23:01
【问题描述】:
getUser 是一个异步函数吗?如果需要更长的时间来解决?它会在我的someotherclass 中始终返回正确的值吗?
class IdpServer {
constructor() {
this._settings = {
// some identity server settings.
};
this.userManager = new UserManager(this._settings);
this.getUser();
}
async getUser() {
this.user = await this.userManager.getUser();
}
isLoggedIn() {
return this.user != null && !this.user.expired;
}
}
let idpServer = new IdpServer();
export default idpServer;
// another class
// import IdpServer from '...'
class SomeOtherClass {
constructor() {
console.log(IdpServer.isLoggedIn());
}
}
【问题讨论】:
-
构造函数通常用于使对象进入可用的有效状态。不要做很多工作。
-
@JamesThorpe 除此之外,构造函数构建一个对象,它不承诺构建对象的一部分
-
我认为您必须在检查状态之前将客户端代码
await调用到getUser()。 -
getUser究竟做了什么?
标签: javascript asynchronous ecmascript-6 identityserver4