Javascript 承诺并确保准备就绪

Javascript 承诺并确保准备就绪,javascript,node.js,Javascript,Node.js,我只是想知道,在使用Promissions时,是否有人对NodeJS中的“确保就绪”模式有什么好主意。我有类似的东西,但我认为它的主要问题是,我认为承诺的.then(cb)实际上覆盖了前一个,而不是链接另一个处理程序 function awaitQueueCreation() { if (!q._queueURL) return whenQueueCreated; else return p.resolve(q._queueURL); } q.someQueue

我只是想知道,在使用Promissions时,是否有人对NodeJS中的“确保就绪”模式有什么好主意。我有类似的东西,但我认为它的主要问题是,我认为承诺的.then(cb)实际上覆盖了前一个,而不是链接另一个处理程序

  function awaitQueueCreation() {
     if (!q._queueURL) return whenQueueCreated;
     else return p.resolve(q._queueURL);
  }

  q.someQueueMethod = function(param) {
       awaitQueueCreation().then(function() {
           // do what this method is supposed to do...
       });
  };

您将如何处理这类事情?

在同一承诺上添加额外的
。然后()
处理程序只会为同一承诺创建第二个通知。它不会链接到前面的
.then()
处理程序。它不会覆盖任何先前的
.then()
处理程序

因此,添加两个
.then()
处理程序只需在承诺完成时一个接一个地对两个回调进行排序

如果第一个
.then()
处理程序本身返回一个未填满的承诺,那么第二个
.then()
处理程序仍然会立即被调用(它不会“链接”到新的未填满的承诺)

要实现两个承诺,您必须执行以下操作:

p.then(...).then(...)
不是:


在这种情况下,我的解决方案似乎是最优的。@JayPrime2012-您没有包含足够的代码,我无法理解您的实际代码或对其作出反应,所以我只是试图解释您提到的概念。
p.then(...)
p.then(...)