Javascript – 不能解决这个'警告:承诺是在处理程序中创build的'
在nodejs应用程序中使用sequelize.js,我有一个promise.all,它承担了两个承诺( user
查询和color
查询):
router.get(`/someEndPoint`, (req, res) => { let userAccount = user.findOne({ where: { id: //some ID } }); let colorStuff = color.findOne({ where: { colorName: //some color } }) Promise.all([userAccount , colorStuff ]).then(([result1, result2]) => { //do stuff, such as: res.send('success'); }).catch(err => { console.log(err) }); });
在说//do stuff
的部分,我的控制台一直给我这个警告:
a promise was created in a handler at... but was not returned from it, see (URL that I can't post) at Function.Promise.attempt.Promise.try
我不知道如何解决这个问题。 我以后想过了.then
承诺解决了吗?
很难说没有其他的背景下,但也许你需要返回Promise.all
return Promise.all([user, color])...
从这里的蓝鸟文档: https : //github.com/petkaantonov/bluebird/blob/master/docs/docs/warning-explanations.md#warning-a-promise-was-created-in-a-handler-but-是-不回-从-它
如果在// do stuff区域中创build了任何其他的promise,一定要返回这些。