Javascript 谷歌+;hangouts将值存储在状态gapi.hangouts.data中
我现在遇到了一个小问题:需要在状态中存储一个随机数,这将持续存在于所有参与者Javascript 谷歌+;hangouts将值存储在状态gapi.hangouts.data中,javascript,asynchronous,google-plus,hangout,Javascript,Asynchronous,Google Plus,Hangout,我现在遇到了一个小问题:需要在状态中存储一个随机数,这将持续存在于所有参与者 alert(delta[random]); 返回值,因此到目前为止一切都正常,但这就是神秘的开始: 我已经试过了 $.each(gapi.hangout.data.getKeys(),function(i,o){ alert(o); }); 但它从未进入循环。但是如果我 alert('dfsdasd'); 提交Delta后,它就可以工作了。 最后两行 alert(gapi.hangout.data.ge
alert(delta[random]);
返回值,因此到目前为止一切都正常,但这就是神秘的开始:
我已经试过了
$.each(gapi.hangout.data.getKeys(),function(i,o){
alert(o);
});
但它从未进入循环。但是如果我
alert('dfsdasd');
提交Delta后,它就可以工作了。
最后两行
alert(gapi.hangout.data.getValue(random));
$("#randomNumber").val(gapi.hangout.data.getValue(random));
已死亡,没有带有“未定义”或[对象]的警报
function setRandom()
{
var rand = Math.floor(Math.random()*100);
var random = "randomNumber";
var delta = {};
delta[random] = JSON.stringify(rand);
alert(delta[random]);
gapi.hangout.data.submitDelta(delta);
alert(gapi.hangout.data.getValue(random));
$("#randomNumber").val(gapi.hangout.data.getValue(random));
}
我包括
两个图书馆
src=“//talkgadget.google.com/hangouts/\ux/api/hangout.js?v=1.1”
和src=”http://code.jquery.com/jquery-1.7.2.js"
OnState上的处理程序未更改
我做错了什么?
每当我触摸gapi.hangouts.data时,它都会失败。我发现这里有两个问题 第一个是定义为接受两个参数,而您只提供一个 另一个问题是submitDelta()是异步的,因此您不应该期望getValue()或getState()在调用后立即工作。在这种情况下,处理问题的最佳方法是使用onStateChanged.add()注册StateChangeEvent 例如,您可以这样做:
function init(){
gapi.hangout.data.onStateChanged.add( handleChange );
submitRandom();
}
function handleChange( stateChangedEvent ){
var random = "randomNumber";
var val = gapi.hangout.data.getValue(random);
alert(val);
$("#randomNumber").val(val);
}
function submitRandom(){
var rand = Math.floor(Math.random()*100);
var random = "randomNumber";
var delta = {};
delta[random] = JSON.stringify(rand);
alert(delta[random]);
gapi.hangout.data.submitDelta(delta, []);
}
我看到这里似乎有两个问题 第一个是定义为接受两个参数,而您只提供一个 另一个问题是submitDelta()是异步的,因此您不应该期望getValue()或getState()在调用后立即工作。在这种情况下,处理问题的最佳方法是使用onStateChanged.add()注册StateChangeEvent 例如,您可以这样做:
function init(){
gapi.hangout.data.onStateChanged.add( handleChange );
submitRandom();
}
function handleChange( stateChangedEvent ){
var random = "randomNumber";
var val = gapi.hangout.data.getValue(random);
alert(val);
$("#randomNumber").val(val);
}
function submitRandom(){
var rand = Math.floor(Math.random()*100);
var random = "randomNumber";
var delta = {};
delta[random] = JSON.stringify(rand);
alert(delta[random]);
gapi.hangout.data.submitDelta(delta, []);
}
非常感谢你,先生,你改变了战局!问题是gapi.hangout.data.submitDelta(delta,[]);没有通过额外的阵法,不知何故我认为它是可选的。非常感谢您,先生,您已经改变了战斗的潮流!问题是gapi.hangout.data.submitDelta(delta,[]);没有传递额外的数组,不知何故我认为它是可选的。