node.jsサーバーで発生しているメモリの問題の潜在的な原因を絞り込もうとしています。私がいつも少し不快だったコードの一部は、Qpromiseの使用です。
私の基本的な構造は次のようになります。
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を使用している場合はどうなりますか?ここではすべてが適切にスコープされていますか?