Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 制作一个向任何函数添加延迟回调的函数?_Javascript_Callback - Fatal编程技术网

Javascript 制作一个向任何函数添加延迟回调的函数?

Javascript 制作一个向任何函数添加延迟回调的函数?,javascript,callback,Javascript,Callback,我想有一个函数,可以添加回调到任何延迟时间的函数 假设我有一个函数: function name(val) { document.write(val); }; 现在,向它添加延迟回调(我不知道脚本将是什么,但我假设它是这样调用的): 我发现有很多例子解释了添加回调,但没有延迟回调,延迟时间是超时+执行时间!这能做到吗 提前谢谢我想你是在找这样的东西吧 函数名(val){ 文件写入(val); } 函数addCallback(main、callback、ms){ 返回函数(){ ma

我想有一个函数,可以添加回调到任何延迟时间的函数

假设我有一个函数:

 function name(val) {
   document.write(val);
 };
现在,向它添加延迟回调(我不知道脚本将是什么,但我假设它是这样调用的):

我发现有很多例子解释了添加回调,但没有延迟回调,延迟时间是超时+执行时间!这能做到吗


提前谢谢

我想你是在找这样的东西吧

函数名(val){
文件写入(val);
}
函数addCallback(main、callback、ms){
返回函数(){
main();
设置超时(回调,毫秒);
};
}
var nameWithCallback=addCallback(函数(){
名称(“Arc”);
},函数(){
控制台日志(“完成”);
}, 1000);

nameWithCallback()我想你在找这样的东西

函数名(val){
文件写入(val);
}
函数addCallback(main、callback、ms){
返回函数(){
main();
设置超时(回调,毫秒);
};
}
var nameWithCallback=addCallback(函数(){
名称(“Arc”);
},函数(){
控制台日志(“完成”);
}, 1000);

nameWithCallback()对不起,我不明白您想做什么,但似乎与您的需要比较接近。即使“main”函数抛出异常,您仍希望调用回调吗?@Partrick RobertsNo@ASDFGerte是的,我知道延迟可以使用setTimeout,执行时间可以使用performance.now(),但我不知道如何组装它@Pertrick Roberts有什么解决方案吗?对不起,我不知道您想做什么,但似乎与您的需要比较接近。您是否仍然希望调用回调,即使“main”函数引发异常?@Partrick RobertsNo@ASDFGerte是的,我知道延迟可以使用setTimeout,执行时间可以使用performance.now(),但我不知道如何组装它@Pertrick Roberts有什么解决方案吗?啊哈,我对代码做了一些修改,它开始按照我的要求工作。非常感谢,我对代码做了一点修改,并按照我的要求开始工作。谢谢
 addCallback( function() {
    name("Arc"); // The Main Function
 }, function() { 
    alert("Done"); // The Callback Function
 }, 1000 // alert will execute only after 1000ms + execution time of the name() function
 );