我是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".
答案 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 //
});