首页 > 解决方案 > Console.log 返回函数而不是数组

问题描述

我在一个函数中设置了一个事件和回调,当我尝试记录返回值时,我期待从回调返回的数组,因为事件是立即触发的,但我正在记录函数本身。
我哪里错了?

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) => {
  console.log(findFraudByFromID.bind(this, fraudID))
}

trackFraud()

标签: javascriptevents

解决方案


bind将在函数中创建一个this可用的新函数。所以你想做的就是运行函数来获取返回的数组。

console.log(findFraudByFromID.bind(this, fraudID)());

或者

console.log(findFraudByFromID.call(this, fraudID));

推荐阅读