我已经在nodejs中创建了一个类
class ApnService {
sendNotification(deviceType, deviceToken, msg, type, id) {
try {
const note = await apnProvider.send(note, deviceToken)
console.log(note)
} catch (err) {
console.log(err)
}
}
}
export default ApnService
我需要做的是将上述函数转换为async
。但是当我使用下面的语法时,它会抛出错误
SyntaxError: src/services/apn.js: Unexpected token (43:19)
41 | }
42 |
> 43 | sendNotification = async(deviceType, deviceToken, msg, type, id) => {
|
^
下面是语法
class ApnService {
sendNotification = async(deviceType, deviceToken, msg, type, id) => {
try {
const note = await apnProvider.send(note, deviceToken)
console.log(note)
} catch (err) {
console.log(err)
}
}
}
export default ApnService
答案 0 :(得分:5)
您只需在函数名称之前添加async即可将该函数声明为异步,
class ApnService {
async sendNotification(deviceType, deviceToken, msg, type, id) {
try {
const note = await apnProvider.send(note, deviceToken)
console.log(note)
} catch (err) {
console.log(err)
}
}
}
export default ApnService
答案 1 :(得分:2)
async
是用于指定异步功能的关键字,请尝试
class ApnService {
async sendNotification(deviceType, deviceToken, msg, type, id) {
try {
const note = await apnProvider.send(note, deviceToken)
console.log(note)
} catch (err) {
console.log(err)
}
}
}
export default ApnService;
答案 2 :(得分:1)
class Foo {
x = something
}
此分配是类字段的示例。 class property / class field语法的使用目前处于TC39流程的第3阶段,这意味着它尚未在ECMAScript中使用,并且尚未被所有JS引擎本地支持。可以通过Babel之类的编译器来使用它,但前提是您自己配置并运行这样的编译器。
幸运的是,您不需要类字段语法即可使类方法异步,只需使用async
关键字即可。
class Foo {
async myMethod () {/* ... */}
}