2016-06-28 7 views
7

Mam otoki, że połowy ostatniego wyniku obietnicą, formatuje je i wysyła dane:Stwórz pustą obietnicę, która po prostu się spełni?

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

w jednym widoku, nie mam obietnicę, że wszystko dzieje się to, że auth-funkcji triggers dodaje req.user i wyzwala done().

Próbowałem dodać taką obietnicę, ale ona nie zostanie rozwiązana.

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

Co to jest 'req.resolve()' powrót bez przekazywania parametrów? – guest271314

+0

Nie zwraca niczego, wyświetla dane do przeglądarki. ma dostęp do garści danych w obiekcie-req używanym przez express.js – Himmators

Odpowiedz

10

Promise Konstruktor wymaga funkcji executora jako parametru. Zastąpić Promise.resolve() dla new Promise()

+0

to działa, ale otrzymuję to ostrzeżenie: Ostrzeżenie: w obiegu została utworzona obietnica, ale nie została ona z niego zwrócona – Himmators

+1

Spróbuj dodać zwrot 'instrukcja przy' return res.json (req.user); '. Jaki jest cel zagnieżdżonych funkcji '.catch()'? – guest271314

Powiązane problemy