当前位置: 首页 > 知识库问答 >
问题:

如何在JavaScript中从异步函数传递参数?[副本]

卜凯旋
2023-03-14

我正试图从两个异步函数向一个函数传递两个值,但我不确定如何继续。代码如下:

    var btcPriceInUSD;
var priceExchangeMXN;
var btcLink = "https://blockchain.info/ticker";
var exchangeRateLink = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20%28%22USDMXN%22%29&env=store://datatables.org/alltableswithkeys&format=json";

//Get btc price in USD
$.getJSON(btcLink, function(btcData) 
    {   
        btcPriceInUSD = btcData.USD.last;
        //document.write(btcPriceInUSD);
    });     


//Get current USD/MXN exchange rate
$.getJSON(exchangeRateLink, function(exchangeData) 
    {   
        priceExchangeMXN = exchangeData.query.results.rate.Rate;
        //document.write(priceExchangeMXN);
    });     


//Convert btc price to MXN
function convertToMXN(btc,toMXN){
    var result = parseFloat(btc) * parseFloat(toMXN);
    document.write(result);
}


convertToMXN(btcPriceInUSD,priceExchangeMXN)

我知道问题是我在异步函数之外调用函数,所以它不接收数字,它给我一个NAN(不是数字),但我不知道如何正确传递这两个在不同函数中检索的参数,有没有可能将btcPriceInUSD和priceExchangeMXN合并在一起并从那里调用它?

提前道谢!

共有1个答案

轩辕嘉平
2023-03-14

尝试这样做(简单地链接ajax调用,最后在两个值都可用时调用该方法)

var btcPriceInUSD;
var priceExchangeMXN;
var btcLink = "https://blockchain.info/ticker";
var exchangeRateLink = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20%28%22USDMXN%22%29&env=store://datatables.org/alltableswithkeys&format=json";

//Get btc price in USD
$.getJSON(btcLink, function(btcData) 
    {   
        btcPriceInUSD = btcData.USD.last;
        //document.write(btcPriceInUSD);

      //Get current USD/MXN exchange rate
      $.getJSON(exchangeRateLink, function(exchangeData) 
        {   
           priceExchangeMXN = exchangeData.query.results.rate.Rate;
            //document.write(priceExchangeMXN);
           convertToMXN(btcPriceInUSD,priceExchangeMXN);
        });  

    });     

//Convert btc price to MXN
function convertToMXN(btc,toMXN){
    var result = parseFloat(btc) * parseFloat(toMXN);
    document.write(result);
}
 类似资料:
  • 本文向大家介绍如何在PowerShell函数中传递参数?,包括了如何在PowerShell函数中传递参数?的使用技巧和注意事项,需要的朋友参考一下 您可以在PowerShell函数中传递参数,并且要捕获这些参数,需要使用参数。通常,当您在函数外部使用变量时,您实际上不需要传递参数,因为变量本身是Public,可以在函数内部访问。但是在某些情况下,我们需要将参数传递给函数,下面的示例说明了如何编写该

  • 在一个类方法中,我通过一个异步函数检索了一些数据。这个方法返回给我的数据,我打算把它传递给另一个叫做的函数。 然而,问题是实际上以

  • 我正在使用无法修改的同步第三个功能,例如: 生成一个新的线程来完成这项工作,并立即返回,当事情完成时,我的onDone函数将被调用。 我想写一个异步方法来包装,这样有人可以这样调用它: 在中,我调用来做真正的事情。但是我不知道如何编写。 有人能告诉我这是否可能,以及怎么做吗?谢谢。

  • 问题内容: 查看此代码: 正如您在控制台中看到的那样,“动画”功能是异步的,它“分叉”了事件处理程序块代码的流程。事实上 : 遵循块代码的流程! 如果我希望以此行为创建自己的代码,该如何使用javascript/jquery进行创建?我认为这是不使用的策略 问题答案: 您不能创建真正的自定义异步函数。您最终将不得不利用本机提供的技术,例如: 一些HTML5 API,例如文件API,Web数据库AP

  • 问题内容: 以传统方式添加事件侦听器: 但是我想适应addEventListener的方式: 它不起作用,因为我无法将getSelection()中的任何参数作为addEventListener方法中的第二个参数传递?据我所知,我只能使用没有括号的函数名。 任何的想法? 问题答案: 无需传递任何内容。用于的函数将自动绑定到当前元素。只需在您的函数中使用: 如果要将任意数据传递给函数,请将其包装在您

  • 问题内容: 请告知如何将参数传递给使用的函数。 我的例子是不正确的。 问题答案: 您需要创建一个匿名函数,以便不会立即执行实际函数。