一次AJAX调用后如何避免回调地狱[关闭]
Posted
技术标签:
【中文标题】一次AJAX调用后如何避免回调地狱[关闭]【英文标题】:How to avoid callback hell after one AJAX call [closed] 【发布时间】:2017-03-30 01:16:38 【问题描述】:我有一个 nodeJS 应用程序,它从 API 请求数据一次。然后我想通过使用单独的函数对这些数据进行一些处理。但是,由于 AJAX 是异步的,我不得不按如下方式使用 async:
async.series(
[
function(callback) getContentFromAPI("banana",callback); ,
function(callback) doSomeProcess1(callback); ,
function(callback) doSomeProcess2(callback); ,
function(callback) doSomeProcess3(callback); ,
function(callback) doSomeProcess4(callback); ,
]
);
有什么办法可以做得更好吗?我只请求一个异步进程并希望避免使用异步,因为所有其他进程都是同步的。
我该怎么办?
【问题讨论】:
使用 Promise 并从同步编程切换到异步编程 你应该考虑使用promise api Ajax,在 Node 中? 【参考方案1】:但是,由于 AJAX 是异步的,所以我不得不按如下方式使用 async
您使一个非常简单和常见的过程过于复杂......我不知道 getContentFromAPI 的“签名”是什么,但是,如果它遵循“标准”节点回调“签名” - 那么您的过程应该一样简单作为
getContentFromAPI("banana", function(error, data)
if (error)
// your error handling goes here
else
doSomeProcess1();
doSomeProcess2();
doSomeProcess3();
doSomeProcess4();
);
【讨论】:
以上是关于一次AJAX调用后如何避免回调地狱[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose:我如何避免回调地狱,同时允许对不返回承诺的 mongoose 方法进行存根?
避免在 javascript 中循环多次返回 - async / await 以解决回调金字塔或回调地狱,