में transducers.js का उपयोग करके मैं दो उत्कृष्ट पुस्तकालयों के साथ खेल रहा हूं: js-csp और transducers.js उनके चारों ओर अपने सिर को लपेटने की कोशिश कर रहा है (और जेनरेटर)।जेएस-सीएसपी
मुझे लगता है कि मुझे चैनलों का उपयोग करने की अच्छी समझ है, लेकिन जब मैंने ट्रांसड्यूसर (जो मुझे अभी तक अच्छी तरह से समझ में नहीं आता है) लागू करने का फैसला किया है, तो मैं इसे काम नहीं कर सकता। यहां तक कि मेरे लिए उदाहरण भी काम नहीं कर रहे हैं।
विशिष्ट ट्रांसड्यूसर.जेएस फ़ाइल जो मैं उपयोग करता हूं, this one है, और जेएस-सीएसपी के लिए, मैंने अपना खुद का संकलन किया (जो कई अन्य प्रयोगों के लिए ठीक काम कर रहा है)। असल में मैंने इसके साथ एक फाइल संकलित की:
import csp from 'js-csp';
window.csp = csp;
ब्राउज़र 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
मैं क्या याद आ रही है:
यहां कुछ नमूना कोड है कि मैं काम करने के लिए उम्मीद थी है? मेरे लिए यह अनिवार्य रूप से वही है जो जेएस-सीएसपी here के लिए प्रलेखन में पाया जा सकता है, और ट्रांसड्यूसर here (दूसरे से अंतिम बुलेट बिंदु) के लिए।
सीएसपी लाइब्रेरी एक स्टैक ट्रेस के साथ त्रुटि फेंकने के लिए पर्याप्त सहायक है। ऐसा लगता है:
error in channel transformer TypeError: [email protected]@transducer/step is not a function
at [email protected]@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
मैं क्या गलत कर रहा हूं? एक कामकाजी उदाहरण (यथासंभव सरल) भी बहुत उपयोगी होगा।
सब कुछ मेरे जिथब, here पर पाया जा सकता है। विशिष्ट के साथ, ऊपर दिए गए कोड के समान, here, सीएसपी और ट्रांसड्यूसर in the js/lib folder पाया जा सकता है।
आप किस संस्करण का उपयोग कर रहे हैं? आपका उदाहरण मेरे लिए io.js v1.7.1, [email protected], [email protected] के साथ काम करता है। यह नोड v0.12.2 (- सद्भावना के साथ) के साथ भी काम करता है। – joews
https://gist.github.com/jwhitfieldseed/4d4b5510720427f75d00 – joews
ओहॉ शायद कुछ ऐसा है जो मुझे गलत समझा जाता है? मैं मूल रूप से बस ब्राउज़र का उपयोग करता हूं (मैं बस वास्तव में चारों ओर बेवकूफ़ बना रहा हूं)। तो मैंने बेबेल के साथ अपना स्वयं का सीएसपी (इसे वैश्विक रूप में बेनकाब करने के लिए) संकलित किया। और फिर मैंने यहां पाया गया एक का उपयोग किया: https://github.com/jlongster/transducers.js/tree/master/dist –