Tan*_*aki 4 javascript callback google-plus
在使用Google+试用Google的Javascript API时,我碰到了一个障碍.
var response;
var request = gapi.client.request({
'path': '/plus/v1/people/' + "THEUSERID",
'params': {}});
request.execute(function(resp){});
Run Code Online (Sandbox Code Playgroud)
执行函数(gapi.client.HttpRequest.execute)只接受一个参数; 回调函数.但是,我不希望在收到数据后立即处理数据,我想将它存储在response我在代码开头声明的变量中.有没有办法使用回调参数来存储响应?
请原谅我,如果这有一个明显的解决方案,我对JavaScript有点新意.
编辑:有人建议回调函数如下:
request.execute(function(resp){response = resp;});
Run Code Online (Sandbox Code Playgroud)
然而,这个功能发生了一些奇怪的事情.这是我用来测试的代码:
var response;
var request = gapi.client.request({
'path': '/plus/v1/people/' + userID,
'params': {}});
request.execute(function(resp){
console.log("RESP:");
console.log(resp);
response = resp;});
console.log("RESPONSE:");
console.log(response);
Run Code Online (Sandbox Code Playgroud)
控制台输出的内容如下:
RESPONSE:
undefined
GET https://www.googleapis.com/plus/v1/people/104815258973759324455?key=XXXXXXX
RESP:
({theactualjsondatathatIreceivedfromthecall})
Run Code Online (Sandbox Code Playgroud)
显然,代码继续执行/之前/可以调用执行回调函数.我需要一种方法来检查这一点,以便在运行回调函数之前不会调用execute函数之后的代码.
request.execute(function(resp){
response = resp;
afterExecute();
});
function afterExecute() {
// this will not fire until after the response has been set.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3069 次 |
| 最近记录: |