Google plus Google+;Hangout应用程序共享数据对象?

Google plus Google+;Hangout应用程序共享数据对象?,google-plus,hangout,Google Plus,Hangout,使用submitDelta、setValue、clearValue和getState设置和获取值时,结果不一致。看起来这些是异步方法,所以我的同步命令(例如,console.log)使用本地数据对象执行。然后,共享数据对象最终会更新,然后更新本地数据对象。这是正确的评估吗?是否有同步运行这些数据命令的方法,即等待共享数据对象更新,然后再在程序中继续运行?是的,Hangouts API中的数据操作是异步的。为了达到同步性,你必须倾听并继续你在这些事件中所做的一切 将为所有参与者以及触发更改的本地参

使用submitDelta、setValue、clearValue和getState设置和获取值时,结果不一致。看起来这些是异步方法,所以我的同步命令(例如,console.log)使用本地数据对象执行。然后,共享数据对象最终会更新,然后更新本地数据对象。这是正确的评估吗?是否有同步运行这些数据命令的方法,即等待共享数据对象更新,然后再在程序中继续运行?

是的,Hangouts API中的数据操作是异步的。为了达到同步性,你必须倾听并继续你在这些事件中所做的一切


将为所有参与者以及触发更改的本地参与者调用该事件。

是的,Hangouts API中的数据操作是异步的。为了达到同步性,你必须倾听并继续你在这些事件中所做的一切


将为所有参与者以及触发更改的本地参与者调用该事件。

似乎不可能写入同步共享数据对象调用,因为如果代码中有多个onStateChange,它们将一起触发。换句话说,我不能将一个共享数据对象更新绑定到一个onStateChange

Google+Hangouts似乎按以下顺序执行数据库API:

  • 获取和设置本地数据对象中的值(使用getState)

  • 使用getState从共享数据对象获取值

  • 更改共享数据对象中的值(setValue、clearValue、submitDelta等)

  • onStateChange以侦听共享数据对象的更改

  • 下面的(伪)代码

    会回来吗

    
    未定义
    未定义
    未定义
    未定义
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    

    因为先执行四个GetValue,然后执行setValue、submitDelta、clearValue和submitDelta,然后四个onStateChanged一起执行,每个执行四次,因为共享数据对象更改了四次


    这听起来正确吗?

    似乎不可能编写同步共享数据对象调用,因为如果代码中有多个onStateChange,它们会一起触发。换句话说,我不能将一个共享数据对象更新绑定到一个onStateChange

    Google+Hangouts似乎按以下顺序执行数据库API:

  • 获取和设置本地数据对象中的值(使用getState)

  • 使用getState从共享数据对象获取值

  • 更改共享数据对象中的值(setValue、clearValue、submitDelta等)

  • onStateChange以侦听共享数据对象的更改

  • 下面的(伪)代码

    会回来吗

    
    未定义
    未定义
    未定义
    未定义
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    33
    

    因为先执行四个GetValue,然后执行setValue、submitDelta、clearValue和submitDelta,然后四个onStateChanged一起执行,每个执行四次,因为共享数据对象更改了四次

    听起来对吗

    setValue('counter', '11')
    getValue('counter')
    onStateChanged (getValue('counter'))
    
    submitDelta( {'counter': '22'} )
    getValue('counter')
    onStateChanged (getValue('counter'))
    
    clearValue('counter')
    getValue('counter')
    onStateChanged (getValue('counter'))
    
    submitDelta( {'counter': '33'} )
    getValue('counter')
    onStateChanged (getValue('counter'))