Javascript 是否将在异步函数中获得的值传递给index.html?

Javascript 是否将在异步函数中获得的值传递给index.html?,javascript,jquery,ajax,asynchronous,argument-passing,Javascript,Jquery,Ajax,Asynchronous,Argument Passing,我目前正在开发我的第一个web应用程序,其中用户可以使用AJAX选择股票并实时获取股票数据 我目前已经设置好了它,用户可以选择股票并从数据库中获取信息(参见3weekwebsites.com上的演示),但是现在我尝试用同样的方法构建一个图表,这被证明是非常困难的。这是因为在我可以使用javascript显示结果之前,现在我需要在index.html中生成图表,据我所知,您无法传递异步函数的返回值 HTML getStock("aapl"); <script> var chartDa

我目前正在开发我的第一个web应用程序,其中用户可以使用AJAX选择股票并实时获取股票数据

我目前已经设置好了它,用户可以选择股票并从数据库中获取信息(参见3weekwebsites.com上的演示),但是现在我尝试用同样的方法构建一个图表,这被证明是非常困难的。这是因为在我可以使用javascript显示结果之前,现在我需要在index.html中生成图表,据我所知,您无法传递异步函数的返回值

HTML

getStock("aapl");

<script>
var chartData = [];
        function createStockChart() {
            ...
            chart.dataProvider = chartData;     
            chart.write('chartdiv');
        }

</script>  
<body>
    <div id="chartdiv" style="width:100%; height:500px;"></div>
</body>

如您所见,我希望传递在javascript文件(变量“stock”)中获得的值,以便在index.html中或最终在另一个javascript文件中设置图表数据。我尝试创建一个回调函数来移动变量,但是由于回调函数也是异步的,所以我似乎无法让它工作。我是不是遗漏了什么?非常感谢您的帮助。

如果我正确理解您的问题,您可以将JS文件中的函数更改为以回调函数作为参数

function getStock(str, callback){
     //make request and if status 200 makea call to callback function
     if(xmlhttp.status==200) 
            {    
                stock = xmlhttp.responseText.split(",");
                alert("Can I pass this value along somehow:" + stock);
                callback(stock);
            }
}
在HTML文件中,传递回调函数

getStock("aapl", createStockChart);
<script>
   var chartData = [];
    function createStockChart(stockVal) {
        ...
        chart.dataProvider = chartData;     
        chart.write('chartdiv');
        //use stockVal
    }

</script> 
getStock(“aapl”,createStockChart);
var chartData=[];
函数createStockChart(stockVal){
...
chart.dataProvider=chartData;
chart.write('chartdiv');
//使用stockVal
}

jQuery标签的用途是什么?很抱歉,我有点迟钝,我还以为jQuery在某处…>很抱歉,这是网络开发的新手。不用担心,欢迎继续非常感谢。我还意识到我可以将index.html中的javascript代码移到实际的javascript文件中。。。然后我就可以写-success:createStockChart();因此,一旦php脚本完成,函数就会执行。感谢您的帮助,我将进一步研究回调函数:)
getStock("aapl", createStockChart);
<script>
   var chartData = [];
    function createStockChart(stockVal) {
        ...
        chart.dataProvider = chartData;     
        chart.write('chartdiv');
        //use stockVal
    }

</script>