【发布时间】:2021-06-22 01:41:03
【问题描述】:
我在使用 javascript 类上的静态异步方法时遇到问题。 如果我删除 static 关键字,它可以在类中调用,但我将无法通过使用类来调用它。
我想要的结果是在使用 User.exist(email) 的类 itselt 和类 ex 的实例上使用 exists 方法。 foo.exist(email)
我认为哪里不对?
const userEmails = []
class User {
constructor(fields) {
this.email = fields.email;
this.name = fields.name;
}
static async exist(email) {
return setTimeout(function() {
return userEmails.includes(email)
}, 2000)
}
async storeEmail() {
let userExist = await this.exist(this.email)
if (userExist) {
console.log('User exist')
} else {
users.push(this.email)
console.log(userEmails)
}
}
};
let foo = new User({email: 'foo@bar.com', name: 'Foo Bar'})
foo.storeEmail() // this.exist is not a function
User.exist('foo@bar.com') // Works when used inside async function with await
【问题讨论】:
标签: javascript class async-await javascript-objects