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,一定要返回这些。