gpt4 book ai didi

javascript - 培根.js Bus.plug : Uncaught Error: not an Observable : [object Object]

转载 作者:行者123 更新时间:2023-12-03 10:33:54 25 4
gpt4 key购买 nike

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

我使用如下

  • baconjs@0.7.53
  • jquery@2.1.3
  • 培根-jquery-bindings@0.2.8
  • webpack 1.7.3

我做错了什么?谢谢。

<小时/>

编辑:2015/3/25

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

而newItemView.newItemStream是EventStream

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

不是所有的EventStream都是Observable吗?

我制作了 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 - 培根.js Bus.plug : Uncaught Error: not an Observable : [object Object],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29090514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com