深度清单订阅数据

是否有可能在深水区使用列表来订阅数据? 似乎对数据的更改不会addEntry() subscribe()函数,只有像addEntry()这样的东西才会影响列表订阅。

 const deepstream = require('deepstream.io-client-js') ; const util = require('util') ; const client = deepstream('localhost:6020').login(); var obj_1 = { 'sequelizeName':'Mark', 'sequelizeAddr':'123 Elm Lane' , 'sequelizeId':'1111'}; var obj_2 = { 'sequelizeName':'Lori', 'sequelizeAddr':'948 Maple Street' , 'sequelizeId':'2222'}; const rec_1 = client.record.getRecord('obj_one'); const rec_2 = client.record.getRecord('obj_two'); rec_1.set(obj_1); rec_2.set(obj_2); var listTest = client.record.getList('listTest'); listTest.setEntries( ['obj_one' ,'obj_two' ] ); listTest.subscribe( (result) => { console.log('LIST SUBSCRIBE: ' + util.inspect(result)); }) setTimeout( () => { obj_1.sequelizeAddr = '321 New Address'; rec_1.set(obj_1); // how can this change show up in the list subscribe? }, 2000 ); 

我被鼓励尝试使用列表的新方法,但我不清楚如何使用列表来订阅数据本身的变化,除非以某种方式具有某种“通用”或“全局”订阅,我不确定甚至是可能的。

或者有什么方法可以使用匿名logging进行订阅?

列表只是string的数组。 您的列表内容没有连接到实际logging。 你甚至不能假定列表条目是一个logging名称。 您需要手动订阅列表中的每个logging名称以获取其内容更新。

这个build议是由wolfram和phillipp提出的:

 class User{ constructor( recordName ) { this.record = ds.record.getRecord( recordName ); this.record.subscribe( this._processUpdate.bind( this ) ); } _processUpdate( data ) { if( this.record.name === '...') { // do stuff } } } 

这工作很好。 谢谢你们俩。