javascript - 我想了解 JavaScript 中的延迟函数
问题描述
抱歉,我想问一下关于 Javascript 的问题。我最近才开始学习学习。
index.js
import FuncDelay from './FuctionDelay.js'
import Summ from './FuntionSumm.js'
Summ(4)
FuncDelay(1000,Summ(3))
FunctionSumm.js
export default function Summ(i){
console.log(i+i)
}
函数延迟.js
我在这个 file.js 中有问题。这个文件关于延迟和回调函数但是函数在延迟后不能工作 //cry
export default function asynchronousDelay(delay, callback) {
setTimeout(function(){
callback
}, delay);
}
谢谢你的知识
解决方案
由于回调是(或必须是)一个函数,您需要像这样调用它:callback()
,您忘记了括号。
首先,当您将带括号的函数作为大函数的参数时,参数函数在大函数之前执行。
FuncDelay(1000,Summ(3))
FuncDelay(1000,undefined)
在 functDelay 启动之前转换为,因为undefined 是 Summ 的返回值。这就解释了为什么 console.log(typeto callback) 显示未定义。
你可以去掉括号,所以参数将是函数而不是函数的返回:FuncDelay(1000,Summ)
但你显然失去了其中的参数 3,所以你需要创建一个没有任何参数的函数来保存你的函数的参数。快速符号是function(){Summ(3);}
.
推荐阅读
- css - 居中的带有粘性页脚的注册表单框,调整大小问题
- .net - 如何在 Math.net 中计算矩阵指数?
- javascript - 登录到管理页面
- python - 如何反转 Python 中常量列表的字节顺序?
- excel - Excel VBA - 主列表
- html - 随着浏览器大小的变化,SVG 无法在 IE 和 Edge 上正确呈现
- tcp - Pivotal Cloud Foundry - 在 TCP 端口上侦听的应用程序
- elasticsearch - 需要对文档内部数组对象进行聚合 - ElasticSearch
- react-native - ReactNative - Tcomb-form-native:以编程方式启用/禁用用户输入
- ejabberd - ejabberd如何在windows上编译