1
node.js 서버에서 발생하는 메모리 문제의 원인을 좁히려합니다. 내가 항상 조금 불편했던 코드의 한 부분은 Q 약속을 사용하는 것입니다.Node.js Q :: Q.ninvoke chain으로 약속합니다.
여기 내 기본 구조가 어떻게 생겼는지입니다 :
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 함수에서도 약속을 사용하면 어떻게됩니까? 여기에 모든 것이 적절하게 적용됩니까?
내가 틀렸다면 정정하십시오. 그러나 Q.all은 비동기 실행을 의미합니다. 내 예제에서는 순차적으로 실행해야한다고 명시 적으로 언급하지 않았지만 일반적으로 제 2 함수는 첫 번째 함수의 결과에 의존합니다. 이 경우, 나의 모범은 "최선의 방법"입니까? 아니면 더 좋은 점이 있습니까? –
약속은 기본적으로 비동기 실행이므로 어떤 의미인지 확신 할 수 없습니다. 첫 번째 결과에 의존하는 두 번째 함수의 경우 'then'이 실제로 올바른 선택입니다. 예제가 포함되어 있습니다. – Domenic