所以,我在一个类中有两个方法。两者都返回一个 promise 。第二个函数从它返回的 promise 内部调用第一个函数。
module.exports = {
funcA: () => {
return new Promise((resolve, reject) => {
something ? resolve(something): reject('nope');
});
}
funcB: () => {
return new Promise(async(resolve, reject) => {
try {
const something = await this.funcA();
} catch(err) {
reject('error');
}
}
}
当我尝试从另一个类调用 funcB() 时,如下所示:
let something = await someService.funcB();
我得到:
TypeError: this.funcA() is not a function
您能解释一下为什么会发生这种情况以及如何解决这个问题吗?
最佳答案
使其工作的一种方法是在 module.exports
block 之外创建函数以获取每个函数的引用。那么this
关键字可以省略
const funcA = () => {
return new Promise((resolve, reject) => {
// code here
});
};
const funcB = () => {
return new Promise(async(resolve, reject) => {
try {
const something = await funcA();
resolve(something);
} catch(err) {
reject('error');
}
})
};
module.exports = {
funcA,
funcB
}
关于javascript - 在 Node 的 Promise 中调用类的其他函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67229599/