在Node.js中回调地狱?

在Node.js中回调地狱?,第1张

在Node.js中回调地狱?

是的,您处于回调地狱。假设您不想使用异步的解决方案(我怀疑您可以证明除偏见之外的其他理由)包括:

1 )进行更多顶级功能。根据经验,每个功能应执行1或2个IO *** 作。

2 )调用这些函数,使您的代码遵循由一小部分控制流“胶水”功能组织成业务逻辑的一小部分短核心功能的模式。

代替:

saveDb1 //lots of pre  saveDb2 //lots of pre    sendEmail //lots of pre

目的是:

function saveDb1(arg1, arg2, callback) {//top-level pre}function saveDb2(arg1, arg2, callback) {//top-level pre}function sendEmail(arg1, arg2, callback) {//top-level pre}function businessLogic(){//uses the above to get the work done}

3 )使用更多的函数参数,而不是过多地依赖闭包

4
)发出事件并减少代码!看看如何嵌套代码将内容写入数据库,然后构建电子邮件并将其添加到队列中?您是否不知道这两个不需要在另一个之上存在?电子邮件非常适合于发出事件的核心业务逻辑,以及侦听这些事件并排队邮件的电子邮件模块。

5 )将应用程序级服务连接代码与特定的交易业务逻辑分离。处理与网络服务的连接应更广泛地处理,而不应嵌入一组特定的业务逻辑中。

6 )阅读其他模块的例子

至于你应该使用异步库,你可以而且应该弥补自己的心态有关,但 你知道,知道非常好,这些每一个方法:

  1. 回调和基本功能javascript技术
  2. 大事记
  3. 诺言
  4. 帮助程序库(异步,步进,灵活等)

任何认真的node.js开发人员都知道如何在 所有
这些范例中使用和工作。是的,每个人都有其偏爱的方法,或者对不偏爱的方法有一些疑惑,但是这些都不是困难的,并且在无法决定您从头开始编写的一些不平凡的代码的情况下很难做出决定每个范例。另外,您应该尝试一些帮助程序库,并了解它们的工作方式以及为什么它们会为您节省样板。研究蒂姆·卡斯韦尔

Step
或考兰·麦克马洪的作品
async
将很有启发性。你看过
everyauth
源代码对promise的使用?我个人不喜欢它,但我肯定必须承认作者已经从该库中挤出了几乎所有重复的内容,而他使用诺言的方式会使您的大脑变成椒盐脆饼。这些人是有很多知识的巫师。不要仅仅因为时髦点而嘲笑那些图书馆。

还有一个很好的外部资源是callbackhell.com。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5172017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存