0

培根与 Twitter 的 Flight 兼容吗?我看到了这个谈话,它们显然是一起使用的(https://www.youtube.com/watch?v=D0N1NdE-9u0),但无法得到一个最小的例子来工作。

这是我的飞行组件,带有传统事件处理以及 Bacon 的事件流。后者只是记录undefineddata.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-aseventstream

于 2014-09-17T18:48:58.610 回答