0

Bacon は Twitter の Flight と互換性がありますか? これらが一緒に使用されているように見えるこのトークを見ました ( https://www.youtube.com/watch?v=D0N1NdE-9u0 )が、最小限の例を機能させることができませんでした。

これは、Bacon のイベント ストリームと一緒に従来のイベント処理を行うフライト コンポーネントです。後者は のログundefinedを記録するだけでdata.a、登録された関数に渡されるのは、実際には (従来のハンドラー関数で名前がonValue付けられた) イベント オブジェクトであり、データ オブジェクトにはアクセスできないことがわかります。e

define(function (require) {
  'use strict';
  var c = require('flight/lib/component'),
    $ = require('jquery'),
    B = require('bacon');
  $.fn.asEventStream = B.$.asEventStream;
  return c(f);

  function f() {
    this.after('initialize', function () {
      // traditional handler
      this.on('dummyData', function (e, data) {
        console.log('jquery: ' + data.a);
      });
      // Bacon handler
      this.$node.asEventStream('dummyData').onValue(function (data) {
        console.log('bacon: ' + data.a);
      });
      // emit data object
      this.trigger('dummyData', { a: 'b' });
    });
  }
});
4

1 に答える 1

4

イベント ペイロードのマッピングに使用できるオプションの引数を asEventStream 関数に渡すことができます。

  this.$node.asEventStream('dummyData', function(e, data) {
     return data;
  }).onValue(function (data) {
    console.log('bacon: ' + data.a);
  });

ここで例を見てみましょう: https://github.com/baconjs/bacon.js#%24-aeventstream

于 2014-09-17T18:48:58.610 に答える