在尝试从函数调用中获取数组时,我遇到了一些混乱。我不确定为什么为什么要返回未定义的值而不是预期的值。
以下内容将按预期记录阵列。
findFraudByFromID = (fraudID) => {
this.KYCinstance.getPastEvents('ReportedFraud',{
filter: {fromID: fraudID},
fromBlock: 0
}, (error, events) => {
var frauds = [];
for (var i = 0; i < events.length; i++) {
frauds.push(events[i].returnValues.fraudID);
}
console.log(frauds);
})
}
trackFraud = (fraudID) => {
findFraudByFromID.call(this, 1);
}
以下日志undefined
findFraudByFromID = (fraudID) => {
this.KYCinstance.getPastEvents('ReportedFraud',{
filter: {fromID: fraudID},
fromBlock: 0
}, (error, events) => {
var frauds = [];
for (var i = 0; i < events.length; i++) {
frauds.push(events[i].returnValues.fraudID);
}
return frauds;
})
}
trackFraud = (fraudID) => {
frauds = findFraudByFromID.call(this, 1);
console.log(frauds);
}
答案 0 :(得分:0)
在第二种情况下,return frauds;
实际上是从getPastEvents()
的回调而不是findFraudByFromID()
返回的。 findFraudByFromID()
不返回任何内容,因此未定义。