2016-06-28 71 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對象中由express.js – Himmators

回答

10

Promise構造函數需要執行程序函數作爲參數。替代Promise.resolve()替換爲new Promise()

+0

使用的一堆數據,但是我得到以下警告:警告:承諾已在處理程序中創建,但未從其返回 – Himmators

+1

嘗試包括'return '在'return res.json(req.user)'聲明''。嵌套'.catch()'函數的目的是什麼? – guest271314