当期望值时,JavaScript函数返回空字符串

时间:2015-02-23 14:17:35

标签: javascript jquery ajax

某处可能存在明显的错误,但我无法找出错误的原因。

我试图从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);

键为空。

1 个答案:

答案 0 :(得分:2)

$ .get命令是异步的,这意味着你的函数返回键的初始值为“”,然后当异步回调触发时,它运行key = data。

您应该阅读javascript中的异步行为 - 对于解决方案,您需要一些方法将数据异步地返回到调用位置。其中一个选项是promise