如何在一次AJAX调用后避免回调地狱

时间:2016-11-16 00:14:54

标签: javascript jquery ajax node.js asynchronous

我有一个nodeJS应用程序,它从API请求一次数据。然后我想通过使用单独的函数对这些数据进行一些处理。但是,由于AJAX是异步的,我不得不按如下方式使用异步:

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

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

我该怎么办?

1 个答案:

答案 0 :(得分:1)

  

但是,由于AJAX是异步的,我不得不使用async,如下所示

你过分复杂了一个非常简单和常见的过程...我不知道任何getContentFromAPI的“签名”,但是,如果它遵循“标准”节点回调“签名” - 那么你的过程应该很简单如

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