0
exports.getOrder = function(id) {
return getCache(id)
.then(function(cache) {
return [
getCustomer(cache.customer),
getInfo(cache.customer)
];
})
.spread(mergeData)
}
function mergeData(a, b) {
return a;
}
확산을 사용하여 형식 오류가 발생하는 이유는 무엇입니까? 두 함수 (getCustomer
, getInfo
)는 Q.Promise
을 반환합니다.Q spread TypeError : 정의되지 않은 함수가 아닙니다.
편집 : 나는 또한 성공과 같은 결과없이이 방법을 테스트 한
exports.getOrder = function(id) {
return getCache(id)
.then(function(cache) {
return Q.all([getCustomer(cache.customer),getInfo(cache.customer)]);
})
.spread(mergeAuditData)
}
.
Edit2가 :
exports.getOrder = function(id) {
return getCache(id)
.then(function(cache) {
return Q.all([
getCustomer(cache.customer),
getInfo(cache.customer)
]);
})
.then(function(a) {
return a // contains: [[result Customer], [result Info]]
})
.catch(function(err) {
console.log(err);
})
}
EDIT3 :
exports.getOrder = function(id) {
return getCache(id)
.then(function(cache) {
return [
getCustomer(cache.customer),
getInfo(cache.customer)
];
})
.spread(function(a,b) {
console.log(a);
console.log(b);
return a
})
.catch(function(err) {
console.log(err);
})
}
Edit4 :
function getCache(id) {
return Cache.findOne({id:id});
}
Edit5 :
function getCache(id) {
var query = Cache.findOne({id:id});
return query.exec();
//return Q(11061);
}
다른 솔루션으로 첫 번째 게시물을 편집했습니다. 나는 너를 시험하고 약간의 피드백을 줄 것이다. – robert
은 ES6의 문제입니까? –
흥미 롭습니다 ...'a'에서 두 결과가 모두 나오고 'b'가 정의되지 않습니다. – robert