返回值未定义

时间:2019-02-28 19:00:42

标签: javascript

在尝试从函数调用中获取数组时,我遇到了一些混乱。我不确定为什么为什么要返回未定义的值而不是预期的值。

以下内容将按预期记录阵列。

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);
}

1 个答案:

答案 0 :(得分:0)

在第二种情况下,return frauds;实际上是从getPastEvents()的回调而不是findFraudByFromID()返回的。 findFraudByFromID()不返回任何内容,因此未定义。