抱歉,我想问一下Javascript。我刚刚开始学习学习。
import FuncDelay from './FuctionDelay.js'
import Summ from './FuntionSumm.js'
Summ(4)
FuncDelay(1000,Summ(3))
export default function Summ(i){
console.log(i+i)
}
我在这个file.js有问题。这个关于延迟和回调函数的文件但是在延迟// cry
之后函数无法工作
export default function asynchronousDelay(delay, callback) {
setTimeout(function(){
callback
}, delay);
}
感谢您的知识
答案 0 :(得分:0)
由于回调是(或必须是)一个函数,你需要像这样调用它:callback()
,你忘了括号。
首先将带有括号的函数作为参数放入大函数时,在大函数之前执行参数函数。
在启动functDelay之前, FuncDelay(1000,Summ(3))
会转换为FuncDelay(1000,undefined)
,因为 undefined是Summ的返回值。这解释了为什么console.log(typeto callback)显示未定义。
你可以摆脱括号,所以参数将是函数,而不是函数的返回:FuncDelay(1000,Summ)
但你明显地松开了参数3,所以你需要创建一个没有任何参数的函数用参数保存你的函数。快速记谱法是function(){Summ(3);}
。