使函数向任何函数添加延迟的回调?

问题描述 投票:0回答:1

我想拥有一个可以在延迟的时间向任何函数添加回调的函数。

让我说我有一个功能:

 function name(val) {
   document.write(val);
 };

现在,向其添加延迟的回调(我不知道脚本是什么,但我认为它会像这样被调用):

 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
 );

我发现了很多示例,其中解释了添加回调,但未将超时+执行时间作为延迟时间的延迟回调!能做到吗?

预先感谢

javascript callback
1个回答
0
投票

我假设您正在寻找类似的东西?

function name(val) {
  document.write(val);
}

function addCallback(main, callback, ms) {
  return function() {
    main();
    setTimeout(callback, ms);
  };
}

var nameWithCallback = addCallback(function() {
  name("Arc");
}, function() {
  console.log("Done");
}, 1000);

nameWithCallback();

不会将回调添加到现有函数中(这是不可能的,但是它将返回一个新函数,该新函数将调用现有函数并在现有函数没有引发错误的情况下设置超时。

© www.soinside.com 2019 - 2024. All rights reserved.