2016-11-16 13 views
-5

У меня есть приложение nodeJS, которое запрашивает данные из API один раз. Затем я хочу сделать некоторую обработку этих данных, используя отдельные функции. Однако, так как AJAX является асинхронным, я вынужден использовать асинхр следующим образом:Как избежать обратного вызова ад после одного вызова AJAX

async.series(
[ 
    function(callback) { getContentFromAPI("banana",callback); }, 
    function(callback) { doSomeProcess1(callback); }, 
    function(callback) { doSomeProcess2(callback); }, 
    function(callback) { doSomeProcess3(callback); }, 
    function(callback) { doSomeProcess4(callback); }, 
] 
); 

Есть ли способ, это можно сделать лучше? Я только запрашиваю один асинхронный процесс и хочу избежать использования async, поскольку все остальные процессы синхронизируются.

Что мне делать?

+2

Используйте обещания и переключаться из синхронизации с ASync программирования – baao

+1

вы должны рассмотреть возможность использования обещание API –

+1

Ajax, в Узел? – adeneo

ответ

1

Однако, поскольку AJAX является асинхронным, я вынужден использовать асинхронный следующий

вы усложненный очень простой и общий процесс ... Я не знаю «подписи "из любой getContentFromAPI есть, но, если он следует„стандартный“узел обратного вызова„подпись“- тогда ваш процесс shouldbe так же просто, как

getContentFromAPI("banana", function(error, data) { 
    if (error) { 
     // your error handling goes here 
    } else { 
     doSomeProcess1(); 
     doSomeProcess2(); 
     doSomeProcess3(); 
     doSomeProcess4(); 
    } 
}); 
Смежные вопросы