Таблица функции "asyn c" с использованием обратного вызова в javascript - PullRequest
0 голосов
/ 24 марта 2020

У меня была задача написать функцию

const poKolei = (fun1, fun2, cb) => { ... };

fun1 и fun2 "асинхронны". Функция poKolei должна гарантировать, что fun2 будет выполняться всегда после fun1, а результаты fun1 будут перенаправлены на fun2. Функция cb должна обрабатывать результаты fun2. Проблема в том, что я не могу использовать обещания и asyn c -wait. Я написал некоторый код, который работает как задумано

const poKolei = (fun1, fun2, cb) => {  
  fun1([2,3,4,5], function(local) {
    fun2(local, function(local) {
      cb(local, function() {
      });
    });
  });
};

function funk1(value, callback){
  setTimeout(() => { 
  let x = value.map(n=>n*2);
  callback(x);
}, 5000);
}
function funk2(value, callback){
  setTimeout(() => { 
  let x = value.map(n=>n+'a')
  callback(x);
}, 500);
}
function funk3(value, callback){
  setTimeout(() => { 
  console.log(value)
  callback();
}, 1000);
}

poKolei(funk1, funk2, funk3);

Теперь мне нужно изменить эту функцию на:

const poKoleiTab = (funTab, cb) => { ... };

funtab - это таблица "asyn c" функций, которые должны обрабатываться так же, как и раньше, но может быть 2 или более функций, и я не знаю, как это сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...