2016-06-28 7 views
7

मैं एक आवरण है कि एक वादा के अंतिम परिणाम पकड़ता है, यह प्रारूप और डेटा आउटपुट है:एक खाली वादा बनाएँ जो अभी पूरा करता है?

req.resolve = (promise) => { 
    return promise.then(() => { 
      res.json(req.user); 
     }).catch(Sequelize.ValidationError, err => { 
     // respond with validation errors 
     return res.status(422).send(err.errors); 
    }).catch(err => { 
     // every other error 
     return res.status(400).send({ message: err.message }); 
    }); 
}; 

एक दृश्य में, मैं एक वादा नहीं है, यह सब होता है कि Auth-समारोह ट्रिगर्स req.user जोड़ता है और done() ट्रिगर करता है।

मैंने इस तरह का वादा जोड़ने की कोशिश की, लेकिन इसे हल नहीं किया गया।

app.get('/user/me', auth, 
    (req, res, next) => { 
     req.resolve(new Promise()); 
    }); 
+0

पैरामीटर के बिना 'req.resolve()' वापसी क्या है? – guest271314

+0

यह कुछ भी वापस नहीं करता है, यह ब्राउज़र को डेटा आउटपुट करता है। यह req-object में डेटा का एक गुच्छा तक पहुंच है जिसका उपयोग Express.js – Himmators

उत्तर

10

Promise कन्स्ट्रक्टर को निष्पादक कार्य को पैरामीटर के रूप में आवश्यक है। Promise.resolve()new Promise()

+0

द्वारा किया जाता है, लेकिन मुझे यह चेतावनी मिलती है: चेतावनी: एक हैंडलर में एक वादा बनाया गया था लेकिन इसे वापस नहीं किया गया था – Himmators

+1

'वापसी' सहित प्रयास करें 'रिटर्न res.json (req.user) पर' कथन; '। नेस्टेड '.catch() 'फ़ंक्शंस का उद्देश्य क्या है? – guest271314

संबंधित मुद्दे