处理javascript中的异步性

时间:2016-11-21 18:50:47

标签: javascript jquery asynchronous src

我一直在尝试从本地文件加载api密钥,我有以下代码:

<script> 
jQuery.get("key.txt", undefined, function(response)
{
        src="https://maps.googleapis.com/maps/api/js?key=" + response + "&libraries=places";
});
</script> 

然而,当涉及谷歌地图api实际被访问时,会引发以下错误:

VM1464:1 Uncaught SyntaxError: Unexpected token C in JSON at position 0(…) 

在jquery中的某个函数中抛出。我不确定这个错误是否来自src根本就没有设置的事实,或者我是否只是没有正确处理异步性。非常感谢任何帮助,谢谢。

修改

更新了代码:

$.get("key.txt", function(response)
{
    src="https://maps.googleapis.com/maps/api/js?key=" + response + "&libraries=places";
    console.log(src);
});

src完全按照它应该出现在控制台中。但是,在网页上做了各种各样的事情,然后点击一个按钮 - 它调用了一个使用google maps api访问php页面的功能:

$url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=".$userLat.",".$userLng."&destinations=".$helperLat.",".$helperLng."&Key=".$key;
//can specify mode (default driving), language etc.

try{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_CAINFO, "crt.PEM");
    $auth = curl_exec($curl);
    ...

其中$ userLat,$ userLng,$ helperLat,$ helperLng和$ key先前(成功)初始化 - 抛出错误。

修改

我想我真正要问的是,在处理了异步之后,我如何将返回值放入html脚本标记的src属性中。到目前为止,我有这个,但它不起作用:

<script src="" onload="getSource(function(result){ return result; });">
function getSource(callback)
{
    $.get("key.txt", function(response)
    {
        callback("https://maps.googleapis.com/maps/api/js?key=" + response + "&libraries=places");
    });
}
</script>

0 个答案:

没有答案