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:undefined不是函數
編輯:
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