我想知道JavaScript中的延迟功能

时间:2018-06-03 10:48:27

标签: javascript node.js

抱歉,我想问一下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)
}

FunctionDelay.js

  

我在这个file.js有问题。这个关于延迟和回调函数的文件但是在延迟// cry

之后函数无法工作

export default function asynchronousDelay(delay, callback) {
	setTimeout(function(){ 
		callback
	}, delay);
}

  

感谢您的知识

1 个答案:

答案 0 :(得分:0)

由于回调是(或必须是)一个函数,你需要像这样调用它:callback(),你忘了括号。

首先将带有括号的函数作为参数放入大函数时,在大函数之前执行参数函数

在启动functDelay之前,

FuncDelay(1000,Summ(3))会转换为FuncDelay(1000,undefined),因为 undefined是Summ的返回值。这解释了为什么console.log(typeto callback)显示未定义。

你可以摆脱括号,所以参数将是函数,而不是函数的返回:FuncDelay(1000,Summ)但你明显地松开了参数3,所以你需要创建一个没有任何参数的函数用参数保存你的函数。快速记谱法是function(){Summ(3);}