@alokazay
javascript

Как подружить async.js и express.js ?

Помогите разобраться

Есть вот такой код суть, в том, что сначала нужно сделать серию параллельных запросов и потом callback вывести на экран в браузер. Код ниже не работает.
async.parallel([
    function(){ ... },
    function(){ ... }
], 
  function(){ 
    app.get('/', function () {
        res.send('test');
    })
 }
);


Если сделать вот так то все работает. Только результат в браузер отдается раньше чем выполнится первые два запроса. В чем моя ошибка?
async.parallel([
    function(){ ... },
    function(){ ... }
], 
  function(){ 

 }
);
    app.get('/', function () {
        res.send('test');
    })
  • Вопрос задан
  • 2489 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alokazay Автор вопроса
javascript
mayorovp - да по логике все верно я так сразу и сделал. Но так тоже не заработало...
app.get('/', function (req, res) {
    async.parallel([
        function () {
            ...
        },
        function () {
            ...
        },

    ],function () {
        res.send('test');
    });

})
Ответ написан
@mayorovp
Э... подумайте еще раз, что вы делаете. Первый раз вы сначала выполняете свои запросы - а только потом вообще начинаете слушать подключения от браузера! Разумеется, у вас ничего не получается.

Второй же раз вы написали два параллельных процесса - один выполняет кучу запросов, второй - слушает запрос от браузера.

Вам же надо сначала получить запрос от браузера - то есть app.get должна стоять первой строчкой. Потом надо сделать несколько запросов - то есть внутри должен быть вызов async.parallel. И только в самом конце должен быть вызов res.send. Я думаю, теперь вы сами сможете правильно собрать эту матрешку.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы