javascript - 在 setTimeout() 中将参数传递给匿名函数
问题描述
我试图弄清楚为什么以下代码不起作用
function testFunction(fn) {
setTimeout(fn(1), 1000)
}
this.testFunction(id => console.log("id; " + id))
删除setTimeout()
并简单地使用fn(1)
将控制台记录所需的结果
ID; 1
解决方案
您的函数接受一个参数,因此它会立即被调用。将算法放在匿名函数中。
setTimeout(() => fn(1), 1000)
推荐阅读
- react-native - 如何在本机模块回调中更改 react-router-native 位置
- c++ - 如何提高我的查找目标功能的效率
- html - PrismJs 没有溢出 CSS Grid
- dart - 如何修复 FutureBuilder 打开多次错误?
- css - z-index 不适用于定位的固定浮动按钮
- node.js - 将文件作为 url 以 json 格式返回 RestApi
- python - 建议下一个可用的 IP 网络块
- google-bigquery - 将数据从一个表附加到另一个表时出现 Bigquery 无效时间戳错误
- javascript - 如何修复 JS 交互使按钮不负责任以及为什么
- vb.net - 当发送者是另一个类的一部分时,事件处理程序没有被删除(使用 RemoveHandler)的问题