2016-11-16 121 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); }, 
] 
); 

有没有什么办法可以做得更好?我只请求一个异步进程,并希望避免使用异步,因为所有其他进程都是同步的。

我该怎么办?

+2

使用从同步的承诺,并切换到异步编程 – baao

+1

,你应该考虑使用承诺API –

+1

Ajax,in节点? – adeneo

回答

1

但是,由于AJAX是异步的,我不得不异步如下

你已经过于复杂的一个非常简单和普通使用过程中...我不知道“签名“什么的getContentFromAPI是,但是,如果按照‘标准’节点回调‘签名’ - 那么你的过程shouldBe这样那样简单

getContentFromAPI("banana", function(error, data) { 
    if (error) { 
     // your error handling goes here 
    } else { 
     doSomeProcess1(); 
     doSomeProcess2(); 
     doSomeProcess3(); 
     doSomeProcess4(); 
    } 
});