javascript - 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()
解决方案
bind
将在函数中创建一个this
可用的新函数。所以你想做的就是运行函数来获取返回的数组。
console.log(findFraudByFromID.bind(this, fraudID)());
或者
console.log(findFraudByFromID.call(this, fraudID));
推荐阅读
- ansible - 适用于 Linux 的 Windows 子系统中使用的 Ansible 的 SSH 私钥格式(使用 PuttyGen 生成密钥对)
- database - 与 postgresql 链接后,Airflow initdb 命令失败
- c - Eric Young 的“crypto/conf/conf.h”中的 2 圆括号有什么用?
- python - 变量是相同的,但不应该是?Python
- google-apps-script - 在 Google 表格中动态创建嵌入式数组
- javascript - wow.js 和 fullpage.js 动画同时触发滚动进/出视口
- svg - 在输入用户名中将 svg 添加到 CakePHP 脚本
- ios - 尝试使用警报完成刷新集合视图
- html - Flexbox Hero 不会居中
- android - 非周期性后台作业长时间运行