调用时函数不返回JSON结果

时间:2017-05-26 09:58:57

标签: json node.js function

我是node.js的新手,我编写了一个调用API(GET)的代码,该API返回一个JSON数组文档。 GET工作正常,问题是我可以访问函数内部的结果,但不能从外部访问。函数内的第一个警告显示JSON内容正常,但我在第二个警报上得到一个未定义的值。(结果)在函数之外。 这是我的一段代码:

function getNames(){
      $.get("./api/myapi")
          .done(function(data) {
              if(data.length > 0) {
                $('#databaseNames').html("Database contents: " + JSON.stringify(data));
                var mylist2 = JSON.stringify(data);
                alert (mylist2);  // This alert is fine
                return (mylist2);

              }
          });
      }

  var result = getNames() ;
  alert (result);   // Here I get "undefined".

1 个答案:

答案 0 :(得分:0)

您必须使用回调函数来使用结果。由于javascript本质上是异步的,因此不会被api调用阻止。修改代码有点像这样..

  function getNames(cb){
      $.get("./api/myapi")
          .done(function(data) {
              if(data.length > 0) {
                $('#databaseNames').html("Database contents: " + JSON.stringify(data));
                var mylist2 = JSON.stringify(data);
                cb(mylist2);
              }
          });
      };

  getNames(function(res){
          alert(res);
  //Other functions with the result //
  });