Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步加载的模块如何从Bacon.js总线获取最新值?_Javascript_Amd_Bacon.js - Fatal编程技术网

Javascript 异步加载的模块如何从Bacon.js总线获取最新值?

Javascript 异步加载的模块如何从Bacon.js总线获取最新值?,javascript,amd,bacon.js,Javascript,Amd,Bacon.js,我在AMD模块中有一个Bacon.Bus define( 'bus', [ 'bacon' ], function( Bacon ){ return new Bacon.Bus(); } ); 其他模块将值推送到总线上 define( 'pusher', [ 'bus' ], function( bus ){ // ... bus.push( value ); // ... } ); 而其他模块则侦听值 define( 'listener', [ 'bus'

我在AMD模块中有一个
Bacon.Bus

define( 'bus', [ 'bacon' ], function( Bacon ){
    return new Bacon.Bus();
} );
其他模块将值推送到总线上

define( 'pusher', [ 'bus' ], function( bus ){
    // ...
    bus.push( value );
    // ...
} );
而其他模块则侦听值

define( 'listener', [ 'bus' ], function( bus ){
    bus.onValue( function( value ){
        // Consume value
    } );
} );
当前加载的任何模块都会接收推送的值;但是,之后加载的任何模块都不会

我尝试创建一个
Bacon.Property
来保存当前值

define( 'bus', [ 'bacon' ], function( Bacon ){
    var bus = new Bacon.Bus();

    bus.current = bus.toProperty();

    return bus;
} );

// The pusher is unchanged

define( 'listener', [ 'bus' ], function( bus ){
    bus.current.onValue( function( value ){
        // Consume value
    } );
} );
但这仍然没有解决问题。无论我将
onValue
连接到
bus
还是
bus.current
,在事件发生后加载的模块都不会被触发


我错过了什么?

这几乎是同一个古老的懒惰问题:


作为一种解决方法,您可以向属性添加无操作订阅服务器,以确保即使在没有实际订阅服务器的情况下也能对其进行更新。或者你可以使用

这实际上是同一个旧的懒惰问题:


作为一种解决方法,您可以向属性添加无操作订阅服务器,以确保即使在没有实际订阅服务器的情况下也能对其进行更新。或者你可以使用

你能不能给我们看一下侦听器代码(即异步加载的模块)?我添加了一个示例侦听器模块。无论侦听器是在推送时加载的,还是在推送之后加载的,代码都是相同的。您能给我们看一下侦听器代码(即异步加载的模块)吗?我添加了一个示例侦听器模块。无论侦听器是在推送
时加载的,还是在推送之后加载的,代码都是相同的。谢谢!这确实解决了我的问题。我在
bus
模块的
current
中添加了一个空的
onValue
,该功能正常。我将研究如何使用
Bacon.Model
。谢谢!这确实解决了我的问题。我在
bus
模块的
current
中添加了一个空的
onValue
,该功能正常。我将研究如何使用
Bacon.Model