某处可能存在明显的错误,但我无法找出错误的原因。
我试图从api中检索数据,并使用下面的js函数来获取它。如果我对$ .get-function内的数据发出警报(键),它会提醒正确的数据。
function getApiKey(company, password) {
var url = "http://myapi.com/" +company+ "?password=" +password;
var key = "";
$.get(url).done(function(data) {
key = data;
//alert(key) returns the correct data
});
return key;
}
但是,我需要在不同的文件中使用该功能,以及它不起作用的地方。当我做的时候
var key = getApiKey("company", "password");
alert(key);
键为空。
答案 0 :(得分:2)
$ .get命令是异步的,这意味着你的函数返回键的初始值为“”,然后当异步回调触发时,它运行key = data。
您应该阅读javascript中的异步行为 - 对于解决方案,您需要一些方法将数据异步地返回到调用位置。其中一个选项是promise。