Я не нашел лучшего названия. На самом деле, я думаю, вопрос больше в сфере охвата. Но я постараюсь объяснить свою проблему. Я встречал здесь и там примеры, когда метод reduce выполняет вложенные функции со ссылкой на предыдущий аккумулятор и текущее значение, которое было несколькими шагами a go. Но это то, как я это вижу, хотя я совсем не уверен. Вот почему я пришел сюда, чтобы прояснить свою теорию. Я пытался перечитать статьи о сокращении, составе и объеме, но все они, похоже, не используются в аналогичном сценарии ios. Может, я все-таки плохо гуглил. Давайте рассмотрим пример :
const composePromises = (...ms) =>
ms.reduce((f, g) => x => g(x).then(f));
const g = n => Promise.resolve(n + 1);
const f = n => Promise.resolve(n * 2);
const z = n => Promise.resolve(n * 1.2);
const h = composePromises(z, f, g);
h(20);
Итак, вопрос: соответствует ли x => g(x).then(f)
go then
с фиксированными f: n => Promise.resolve(n * 1.2)
и g: n => Promise.resolve(n * 2)
. Затем после вызова h(20)
, когда g = n => Promise.resolve(n + 1)
был разрешен и настала очередь then
, он разрешает x => g(x).then(f)
с фиксированными f
и g
для функций, о которых я упоминал ранее?
Я попытался описать как можно более mu sh, и надеюсь, вы поняли мою мысль. Я просто хочу понять, как работают такие приложения. Я потратил некоторое время, чтобы понять, как ссылки изменяются на f
и g
правильным образом. И это единственное объяснение, которое я придумал.