从回调javascript函数返回变量

时间:2016-09-03 17:30:10

标签: javascript

我试图返回我已经制作的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);

1 个答案:

答案 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);
});