У меня есть несколько переменных, которые необходимо вычислить перед сохранением в виде файла JSON, они рассчитываются с помощью функции. Однако при асинхронном запуске они выглядят как неопределенные. Я прочитал об обещаниях и кажется, что это может быть так, но запускать 15 обещаний кажется немного глупым, поэтому я подумал, что спрошу, есть ли более чистый способ сделать это. Вот часть кода

var sql = "Select a.Volume, a.LastPrice, a.buyers, a.id From (Select Volume, LastPrice, buyers, id FROM "+ marketname +" ORDER BY id DESC LIMIT 1440) a order by a.id asc";
          db.query(sql, function (err, result, fields) {
          if (err) throw err;
          result.forEach(function(element){
            results = result.length;
            tempArrayVol.push(element.Volume);
            tempArrayPrice.push(element.LastPrice);
            tempArrayBuyers.push(element.buyers);
            counter++;
            console.log(results + " " + counter);
          });
          
         var volumeaverage = (( tempArrayVol.reduce(function(acc, val) { return acc + val; }) )  / tempArrayVol.length);
         var buyersaverage = ((( tempArrayBuyers.reduce(function(acc, val) { return acc + val; }) ) / tempArrayBuyers.length ) * 100);

         var price24h    = change(prevDay, tempArrayPrice[tempArrayPrice.length -1]);
          //etc
          

Итак, как только все переменные определены, следует записать файл JSON, следует ли связать обещания или есть лучший способ?

0
Rand 7 Май 2018 в 19:22

1 ответ

Лучший ответ