На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> Функция tap , Ramda
    Задам пожалуй самый тупой вопрос :D
    зачем она нужна? :wacko:
    те примеры что я нашел не раскрывают его суть
    ExpandedWrap disabled
      const sayX = x => console.log(x);
      R.tap(sayX, 100); //=> 100
      // logs => 100

    ну и зачем это нужно? :huh:
    или вот еще
    ExpandedWrap disabled
      const log = R.bind(console.log, console);
      R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}
      // logs => {a = 2}

    и зачем ее тут вызвали? и без нее все работает :wall:
    ExpandedWrap disabled
      R.pipe(R.assoc('a', 2), log, R.assoc('a', 3))({a: 1}); //=> {a: 3}
      // logs => {a = 2}
      Разобрался, как оказалось все просто :D
      Вот пример, который наглядно показывает для чего tap может пригодится, а именно без tap прерывается цепочка передачи данных в функции compose
      ExpandedWrap disabled
        R.compose(
            console.log, //<-- тут пойдет без tap
            R.add(1),
            R.tap(console.log), //<-- а тут нет ибо передача данных прервется
            R.multiply(2)
        )(5);
         
        //=> 10
        //=> 11

      Это можно проделать и без tap
      ExpandedWrap disabled
        R.compose(
            console.log,
            R.add(1),
            val => {
                console.log(val);
                return val;
            },
            R.multiply(2)
        )(5);
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0192 ]   [ 15 queries used ]   [ Generated: 28.03.24, 08:09 GMT ]