【问题标题】:Node.js event driven paradigm = messy code?Node.js 事件驱动范式 = 乱码?
【发布时间】:2013-10-27 10:46:05
【问题描述】:

我来自 PHP 背景,现在正在尝试适应 Node.js 的事件驱动范例。但是,我的代码很快就会变得混乱。下面我将程序代码与实际的 Node.js Redis 代码进行比较。我这样做对吗?

PROCEDURAL(伪代码)

if(!client.get("user:name:koen")) {
    client.set("user:name:koen", "user:id:" + client.incr("count:users"));
}

事件驱动(实际代码)

client.get("user:name:koen", function(err, res) {
  if(!res){
    client.incr("count:users", function(err, count){ 
      client.set("user:name:koen", "user:id:" + count, function (err, res) {
        callback(err, res);
      });
    }); 
  }
});

【问题讨论】:

  • 看看 jQuery 或类似库的 Deferred 概念。在我看来,它使代码更具可读性。
  • 您的意思是“同步与异步”。两者都是程序性的。至于主要问题:是的,这就是你在异步范式中的做法。您可以使用一些帮助程序(例如async.js),但最终它看起来或多或少是这样的。
  • 好吧,这就是我需要知道的。只是想确保我没有把事情复杂化。谢谢。
  • 通常称为callback hell

标签: node.js redis


【解决方案1】:

问题中提到的回调地狱,这里有很大的解释,以及如何编写代码来避免它:

http://callbackhell.com/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 2011-06-02
    • 2015-11-18
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多