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