2016-06-28 15 views
7

Ho un involucro che cattura l'ultimo risultato di una promessa, formatta e emette i dati di:Crea una promessa vuota che soddisfa semplicemente?

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 }); 
    }); 
}; 

In una vista, non hanno una promessa, tutto ciò che accade è che l'auth-funzione i trigger aggiungono req.user e trigger done().

Ho provato ad aggiungere una promessa come questa, ma non viene risolto.

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

Cosa restituisce "req.resolve()" senza passare il parametro? – guest271314

+0

Non restituisce nulla, trasmette i dati al browser. ha accesso a un gruppo di dati nell'oggetto req utilizzato da express.js – Himmators

risposta

10

Promise costruttore richiede funzione esecutore come parametro. Sostituire Promise.resolve() per new Promise()

+0

funziona, ma ottengo questo avviso: Avviso: una promessa è stata creata in un gestore ma non è stata restituita da esso – Himmators

+1

Provare a includere 'ritorno 'dichiarazione a' return res.json (req.user); '. Qual è lo scopo delle funzioni '.catch()' annidate? – guest271314

Problemi correlati