我有2个函数funcA
和funcB
。 funcA
调用funcB
和
通过回调。在funcA
中,回调(cb
)定义明确,但是
funcB
获得undefined
。
以下是代码:
MyClass.prototype.funcA= function (a) {
return new Promise((resolve, reject) => {
let cb = (reading) => {
console.log("Will resolve:" + reading);
resolve(funcC(reading));
};
if (cb)
console.log("cb ok");
else
console.log("cb ko");
this.funcB(a, cb);
});
}
MyClass.prototype.funcB= function (a, callback, c) {
console.log("funcB");
console.log("callback: " + callback);
this.device.send(a, response => {
console.log("CB ?");
if (callback) {
console.log("CB !");
callback(response);
}
else {
console.log("no callback");
console.log(callback);
}
});
if (c) {
funcB([0x00, 0x00]);
}
};
这是控制台输出:
cb ok
funcB
callback: (reading) => {
console.log("Will resolve:" + reading);
resolve(funcC(reading));
}
CB ?
no callback
undefined
请注意,在代码库中我有其他函数调用funcB
和funcB
成功调用回调。
答案 0 :(得分:0)
我发现了这个问题。
this.device.send()
不会调用它给出的回调,而是调用前一次调用中给出的回调。由于没有记录,我不得不去3层找到实施......
所以解决方案就是调用funcB()
,直到调用你想要的回调。