代码之家  ›  专栏  ›  技术社区  ›  0TTT0

返回值未定义

  •  0
  • 0TTT0  · 技术社区  · 6 年前

    我在尝试从函数调用获取数组时遇到了一些困惑。我不知道为什么返回的是未定义的值,而不是预期值。

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

    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 回复  |  直到 6 年前
        1
  •  0
  •   Kon    6 年前

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