@soolver

Как сделать параллельный запрос nodejs?

Возникла проблема, до конца не могу понять, как работать с асинхронными языками.
Функция работает, отдает мне нужный объект, но только после второго запроса на сервер
При первом запросе возвращает пустой array, потом заполняет его, а при втором запросе уже выдает

'use strict';

const user2 = require('../models/base');
var array =  [];
var i =0;



exports.getEda = email => 
	
	new Promise((resolve,reject) => {

	 	 user2.count().exec(function(err, count){

  var random = Math.floor(Math.random() * count);
  var calories = 2500;

  test(calories);

    
  function test(calories, random) {
    user2.findOne().skip(random).exec(
    function (err, result) {
      random = Math.floor(Math.random() * count);
      
      var stringify = JSON.stringify(result);
      var jsonContent = JSON.parse(stringify);   
      calories = calories - jsonContent.calories;
      console.log(calories);
      if (calories > 0){
      test(calories, random);
      } 
        
      array[i] = result;
        i++;  
        
  });   
  }
        
  console.log(array);
      
})

		.then(eda => resolve(array))
		.catch(err => reject({ status: 500, message: 'Internal Server Error !' }))
 
	});
  • Вопрос задан
  • 266 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы