我试图返回我已经制作的api通话结果,但我继续将未定义作为输出。这是代码:
function getProjects() {
var message;
gapi.client.dolapoapi.getProject({
'appid': "test4"
}).execute(function(resp) {
if (!resp.code) {
//get the response and convert it to a string
message = JSON.stringify(resp);
//console.log(resp); i get the correct output here
}
//console.log(message); i get the correct output here
});
//console.log(message); it returns undefined.
return message;
}
我不确定可能出错的地方。但我想要做的是在消息变量中分配之后返回其中的内容:
message = JSON.stringify(resp);
答案 0 :(得分:2)
将函数作为回调传递,当异步操作完成时,以数据作为参数调用函数。
function getProjects(callback) {
var message;
gapi.client.dolapoapi.getProject({
'appid': "test4"
}).execute(function(resp) {
if (!resp.code) {
//get the response and convert it to a string
message = JSON.stringify(resp);
//console.log(resp); i get the correct output here
}
if(callback && typeof callback == "function") {
callback(message);
}
});
}
getProjects(function(message) {
//using a callback to get the data
console.log(message);
});