javascript — использование transducers.js в js-csp

Использование transducers.js в js-csp

Я играю с двумя отличными библиотеками: js-csp и transducers.js, пытаясь обернуть их вокруг (и генераторы).

Я думаю, что получил хорошее представление об использовании каналов, но когда я решил применить к ним преобразователи (которые я пока не совсем хорошо понимаю), я не могу заставить их работать. Даже примеры не работают для меня.

Этот файл transducers.js, который я использую, является этим , и для js-csp я скомпилировал свой собственный (который отлично работал во многих других экспериментах). В основном я скомпилировал файл с этим:

import csp from 'js-csp'; window.csp = csp; 

с browserify v.9.0.3 и babel v.5.0.8.

Вот пример кода, который я ожидаю работать:

 // Make transducer var xAdd10 = transducers.map(function (x) { return x   10; }); // Make a channel, using the transducer var ch = csp.chan(2, xAdd10); // Put a number in the channel csp.putAsync(ch, 1); // This throws an error 

Что мне не хватает? Для меня это, по сути, то же самое, что можно найти в документации для js-csp здесь и для датчиков здесь (от 2 до последнего пункта).

Библиотека csp достаточно полезна, чтобы выдать ошибку с трассировкой стека. Выглядит так:

 error in channel transformer TypeError: xform.@@transducer/step is not a function at Object.@@transducer/step (file:///Users/g/code/learning/generators-csp/js/lib/csp.js:1511:44) at Channel._put (file:///Users/g/code/learning/generators-csp/js/lib/csp.js:1288:57) at put_then_callback (file:///Users/g/code/learning/generators-csp/js/lib/csp.js:1652:24) at file:///Users/g/code/learning/generators-csp/js/12-transducers-1.js:21:10 

Что я делаю неправильно? Рабочий пример (настолько простой, насколько это возможно) также был бы очень полезен.

Все можно найти на моем github, здесь . С конкретными, идентичными приведенному выше коду, здесь csp и transducers можно найти в папке js / lib .

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector