Создание функции, которая добавляет отложенный обратный вызов к любой функции? - PullRequest
0 голосов
/ 14 октября 2019

Я хочу иметь функцию, которая может добавить обратный вызов к любой функции с задержкой синхронизации.

Допустим, у меня есть функция:

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

Я нашел много примеров, в которых объяснялось добавление обратного вызова, но не отложенный обратный вызов с тайм-аутом + выполнениевремя как отсроченное время! Можно ли это сделать?

Заранее спасибо

1 Ответ

0 голосов
/ 14 октября 2019

Полагаю, вы ищете что-то подобное?

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

Он не добавляет обратный вызов к существующей функции (это невозможно), но возвращает новую функцию, которая вызывает существующую функцию и устанавливает время ожидания, если существующая функцияне выдает ошибку.

...