Javascript I';我收到一个未处理的拒绝承诺错误,但可以';我不明白为什么
我得到以下错误:Javascript I';我收到一个未处理的拒绝承诺错误,但可以';我不明白为什么,javascript,express,massive,Javascript,Express,Massive,我得到以下错误: const express = require('express'); const cors = require('cors'); const massive = require('massive'); const bodyParser = require('body-parser'); const config = require('../config'); const app = express(); app.use(bodyParser.json()); //mas
const express = require('express');
const cors = require('cors');
const massive = require('massive');
const bodyParser = require('body-parser');
const config = require('../config');
const app = express();
app.use(bodyParser.json());
//massive connection string to database
massive(config.dblink).then(db => {
app.set('db', db)
app.get('db').seed_file().then(res => {
console.log(res)
})
}).catch(err => {
console.log(err)
});
const port = 3001;
app.listen(port, () => {console.log(`the server is listening on ${port}`)})
我还没能弄清楚到底是怎么回事。我看过多个不同的例子,但看不出问题所在。在我的种子文件之后,我有一个.catch
有什么想法吗
我收到一个未处理的拒绝承诺错误,但无法解决
为什么
您收到此警告是因为您有未处理的拒绝承诺:)。outercatch()
方法没有处理嵌套的承诺拒绝,因此有两个选项:
1)在嵌套的承诺上使用return,它将从外部捕获catch()
:
2)使用内部catch()
以不同方式处理嵌套拒绝:
massive(config.dblink).then(db => {
app.set('db', db)
return app.get('db').seed_file().then(res => {
console.log(res)
});
}).catch(err => console.log(err) });
演示:
函数doPromise(someText,flag){
返回新承诺(功能(解决、拒绝){
setTimeout(函数(){
标志?解决(someText):拒绝(someText);
}, 500);
});
}
/*以下示例演示未处理的拒绝*/
doPromise('这将解决',true)。然后(函数(res1){
控制台日志(res1);
doPromise('这是未处理的承诺拒绝',false)。然后(函数(res2){
console.log(res2);
});
});
/*以下示例演示如何处理嵌套承诺拒绝(如第1点所述)*/
doPromise('1)这将解析',true)。然后(函数(res1){
控制台日志(res1);
返回doPromise('1)从外部捕获的嵌套拒绝,false);
}).catch(err=>console.log(err));
/*以下示例演示如何处理嵌套承诺拒绝(如第2点所述)*/
doPromise('2)这将解决',true)。然后(函数(res1){
控制台日志(res1);
doPromise('2)从内部捕获的嵌套拒绝(false)).catch(err=>console.log(err));
}).catch(err=>console.log(err))
就在console.log(res)
的正下方,您有一个额外的})
。删除它,你应该good@MarkDodds事实并非如此,只是代码格式不好
massive(config.dblink).then(db => {
app.set('db', db)
return app.get('db').seed_file().then(res => {
console.log(res)
});
}).catch(err => console.log(err) });
massive(config.dblink).then(db => {
app.set('db', db)
app.get('db').seed_file().then(res => {
console.log(res)
}).catch(err => console.log(err) });
}).catch(err => console.log(err) });