1
我试图缩小与我的node.js服务器有关的内存问题的潜在原因。我一直感到有点不舒服的一部分代码是我使用Q的承诺。Node.js与Q :: Q.ninvoke承诺
这里是我的基本结构是什么样子:
var Q = require('q');
MyClass.prototype.doSomething = function(somedata, callback) {
var res = [];// will contain the results of each function call
Q.ninvoke(this, 'doSomethingElse', 'hello!')
.then((function(result){
res.push(result);
return Q.ninvoke(this.someobject, 'someFunction', somedata);
}).bind(this))
.then((function(result){
res.push(result);
callback(null, res);// Returns both result objects, in an array
}).bind(this))
.fail(callback)
.done();
}
这个问题似乎合乎逻辑?
如果doSomethingElse函数也使用promise,该怎么办?一切都在这里正确的范围?
纠正我,如果我错了,但Q.all意味着异步执行。我没有在我的示例中明确指出我需要按顺序运行,但通常我的第二个函数依赖于第一个函数的结果。事实如此,我的例子就是“最好的方式?”还是有更好的? –
承诺本质上具有异步执行,所以我不确定你的意思。 对于依赖第一个结果的第二个函数,'then'确实是正确的选择。包括的例子。 – Domenic