2016-07-15 114 views
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; 
} 

任何想法爲什麼我使用傳播得到類型錯誤?兩個函數(getCustomergetInfo)都返回Q.PromiseQ 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); 
} 

回答

0

我還沒有經過測試,但你可以嘗試和替換你的代碼

module.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); 
    }) 
} 
+0

我已經編輯了與另一個解決方案的第一篇文章。我會測試你的並給出一些反饋。 – robert

+0

是ES6的問題嗎? –

+0

有趣...在'a'中會有兩個結果,而'b'是未定義的。 – robert

相關問題