根据MDN的定义
闭包是函数和词汇环境的结合
根据上述定义,
listenCallback
在声明自身时,在其词法作用域中没有声明。
listenWrapperFrom
或
将从其闭包接收声明变量的位置,而不是引用变量的位置。
为了解决这个问题,您可以在
listenCallbackFrom
和
方法
var blockNumber;
listenToEvent = async () => {
blockNumber = await web3.eth.getBlockNumber();
KYCinstance.events.ReportedFraudA({ fromBlock:0 }, listenWrapperFrom);
};
function listenWrapperFrom(error, event) {
listenCallback(error, event, "fromFraudEvents");
}
async function listenCallback (error, event, type) {
if (error) { console.log(error); }
else {
console.log(blockNumber);
let value = await someFunction();
}
}