Получить значение от обратного вызова - PullRequest
0 голосов
/ 15 мая 2018

Мне нужна помощь. Я пытался извлечь значение из функции обратного вызова, я хочу сделать его доступным глобально или где-либо вне функции, но не совсем уверен, как это сделать. Я все еще пытаюсь выучить JavaScript.

Ниже приведен фрагмент функции обратного вызова с именем updateBidAsk . Что он делает, так это то, что он получает ценовой поток из источника в формате json и обновляет его все время, когда появляется новая цена. Я поместил его в функцию .each () , чтобы обрабатывать и повторять все данные, извлекать значение цены покупки, равное quoteViewModel.bid , и сохранять его в глобальной переменной с именем . currentBidPrice . Теперь, если console.log показывает цену.

Однако моя проблема в том, что я не знаю, как передать данные внутри getVals () для передачи в getPrices . Я пытался вызвать функции getVals внутри функции getPrices , но безуспешно, я всегда получаю неопределенное значение каждый раз, когда вызываю функцию. как правильно передать данные из updateBidAsk в функцию -> getPrices? Вот мой код Буду признателен за любую оказанную помощь. Спасибо.

chat.client.updateBidAsk = function(rawData) {
  $.each(rawData,
    function() {

      var quoteViewModel = formatQuote(this);
      var $row = $(rowTemplate.supplant(quoteViewModel));
      $stockTableBody.find('tr[data-symbol=' + this.symbol + ']').replaceWith($row).fadeIn("fast");

      //if block, checks for eursd bid price updates
      if (quoteViewModel.symbol === 'EURUSD') {
        currentBidPrice = quoteViewModel.bid;
      } //end if block

    }); // end callback function

  //if I console.log it shows the price
  //console.log(currentBidPrice);

  getVals(currentBidPrice);

}; //end of callback function updateBidAsk

function getVals(data){
  //console.log(data);
  return data; 
}

$.getJSON('http://somevalidname.com/chart/eurusd/1', getPrices); // handles the data from source

function getPrices(data) {

  // I just need to get the passed data from function getVals() 
  // and somehow make it available here so I could use.
  //

}
...