2017-07-05 2 views
1
Promise.map(response.orders.orders, function(order) { 

        if(order.order_destination == "OC"){ 
         return searchOrdersBll.promisifyOrdersOC(order).then(function(order){ 
          return searchOrdersBll.orderCommentHistory(order); 
          }) 
        }else if(order.order_destination == "OB"){ 
         return searchOrdersBll.promisifyOrdersOB(order).then(function(order){ 
          return searchOrdersBll.orderCommentHistory(order);        
          }) 
        }      

       }) 
       .then(function(data) { 
        args.order = data; 
        args.track_orders = []; 
        htmlResponse(req, res, partials.orderedtemplate, args); 
       }) 

なって問題が返されませんでした。警告:約束は時ハンドラ内で作成されましたが、それから

警告:約束は VAR/WWW/HTML /たCustomerServiceでハンドラで作成されました//var/www/html/customerservice/node_modules/bluebird/js/release/mapの から返されませんでした。 js:164:12)

+0

をご 'htmlResponse'機能が約束ジェネレータである場合、あなたはそれがコンテナ関数の結果だ返す必要があります。これで、非同期コールチェーンがその行をブレーキし、 'undefined'の結果をアップレベルの呼び出し元に返します。 –

答えて

1

htmlResponseによって返された約束をURN:

Promise.map(response.orders.orders, function(order) { 

        if(order.order_destination == "OC"){ 
         return searchOrdersBll.promisifyOrdersOC(order).then(function(order){ 
          return searchOrdersBll.orderCommentHistory(order); 
          }) 
        }else if(order.order_destination == "OB"){ 
         return searchOrdersBll.promisifyOrdersOB(order).then(function(order){ 
          return searchOrdersBll.orderCommentHistory(order);        
          }) 
        }      

       }) 
       .then(function(data) { 
        args.order = data; 
        args.track_orders = []; 
        return htmlResponse(req, res, partials.orderedtemplate, args); 
       }) 
関連する問題