我正在尝试baconjs的教程。
https://baconjs.github.io/tutorials.html#content/tutorials/2_Ajax

但是,我在“ Bus.plug”中遇到了错误

var cart = ShoppingCarEt([])
var cartView = ShoppingCartView(cart.contentsProperty)
var newItemView = NewItemView()
cart.addBus.plug(newItemView.newItemStream)


错误:

Uncaught Error: not an Observable : [object Object]
shopBundle.js:145 assertObservable
shopBundle.js:2650 Bus.plug


我使用以下


[email protected]
[email protected]
培根[email protected]
webpack 1.7.3


我究竟做错了什么?
谢谢。



编辑:2015/3/25

原因是newItemView.newItemStream不可见。
newItemView.newItemStream instanceof Bacon.Observable返回false。)

而且newItemView.newItemStream是EventStream

EventStream {takeUntil: function, sampledBy: function, combine: function, flatMapLatest: function, fold: function…}


并非所有EventStream都是可观察的?

我做了newItemStream如下:

var $button = $('#addButton');
var $nameField = $('#nameText');
var newItemProperty = Bacon.$.textFieldValue($nameField);
var newItemClick = $button.asEventStream('click');
var newItemStream = newItemProperty.sampledBy(newItemClick);




以下工作正常。第一次问我是我的小姐。

/ *而且,我尝试使用更简单的代码。它有相同的错误。 * /

 var someStream = Bacon.interval(1000).map(function() {
    return new Date().getTime();
});
var bus = new Bacon.Bus();
bus.log();
bus.plug(someStream);

最佳答案

它是由“ bacon-jquery-bindings”(https://www.npmjs.com/package/bacon-jquery-bindings)引起的

var Bacon = require('baconjs');
var $ = jQuery  = require("jquery");
Bacon.$ = require("bacon-jquery-bindings"); <-


似乎覆盖了asEventStream函数。

我们应该使用“ bacon.jquery”(https://www.npmjs.com/package/bacon.jquery

关于javascript - bacon.js Bus.plug:未捕获的错误:不可观察:[对象对象],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29090514/

10-09 18:34