Как получить доступ к - PullRequest
       11

Как получить доступ к

0 голосов
/ 18 апреля 2019

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

1 Ответ

1 голос
/ 18 апреля 2019

Это загадка, которую вы должны решить, не имея доступа к аргументам.Возвращенная функция из printCall уже имеет waitingTime в замыкании.Хитрость заключается в том, чтобы расположить обратные вызовы в правильном порядке, чтобы они вызывались во вложенном порядке.

Вот один из способов:

'use strict';

function printCall(waitingTime) {

  return function(callback) {

    setTimeout(() => {
      console.log(`${waitingTime}ms have passed`);
      if (callback) {
        callback();
      }
    }, waitingTime);

  }
}

function callOneByOne($$, $) {
  // pretty huh?
  return  _ => $$(() => $(_))
}

let calls = [printCall(3000), printCall(2000), printCall(4000)];

(calls.reduce((__, _) => callOneByOne(__, _), _ => _()))();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...