我正在尝试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/