OOの世界では、ネットワークをリッスンして対話できるようにTorrent
オブジェクトを作成したいと考えています。それは持つEventEmitterを継承すると、次のようなものになります。Cycle.js再利用可能なモジュールを作成する
var torrent = new Torrent(opts)
torrent.on('ready', cb) // add torrent to the UI
torrent.on('metadata', cb) // update data in the UI
をし、私もそれが物事を行うことができます。
torrent.stop()
torrent.resume()
その後の進路私はメモリからの急流を削除したいと思うならば、私はすることができますtorrent.destroy()
に電話してください。
このOOのアプローチのクールな点は、この機能を独自のnpmモジュールに簡単にパッケージ化し、テストして、使いやすくきれいな再利用可能なAPIをユーザーに提供できることです。
私の質問は、Cycle.jsアプリでこれをどのように達成するのですか?
ドライバを作成すると、多くのトレントを作成し、独自の独立したリスナーを持つ方法は不明です。また、他のCycle.jsアプリで簡単に再利用できるように機能をパッケージ化したいと考えています。
はい、私は機能的な方法ではなく、必要不可欠でそれについて考えて問題を抱えていると思います。だから、あなたが私がソースを送り、トレントのインスタンスを作成できるTorrentDriverを持っていると言っているのですか?私の実際の「トレントオブジェクト」がどこにあるのかを理解するのは混乱します。それはどこかの記憶にある必要があるからです。 –
この関数(とおそらくはドライバではない)はインスタンスを返さないでしょう - それは "機能的な方法"でしょう。ストリームを返すだけで、それを使用して反応させることができます。したがって、ソースはトレントを作成する必要があります(いくつかのDOMイベントやアクションなど)、シンク(返されたストリーム)は、あなたのアプリで使用できる何らかの結果となります(DOMやいくつかのデータストリーム)。それはあなたが達成したいものに本当に依存しますが、一般的にはインスタンスを作成し、必要なようにそれらを使用することは、何かサイクルコンポーネントが行うことではありません... – domagojk