尽我的智慧。似乎无法弄清楚为什么会这样。
Trade.findOne( { ticker } ).then( ( err, doc ) => {
if ( err ) {
console.log( 'THERE IS AN ERROR:', '\n', err )
} else {
console.log( 'no error' )
if ( doc ) {
console.log( 'doc', doc )
} else {
console.log( 'no doc' )
}
}
} )
此代码段运行时,将进入错误情况,并记录控制台日志THERE IS AN ERROR
,而当我注销err
时,它将注销找到的正确文档。我似乎无法弄清楚为什么会这样。是否有更好的错误消息?
我以为可能有些东西与我的Schema冲突,但是我逐行浏览了数据,却一无所获。
编辑:
太奇怪了...我将代码的结构更改为:
Trade.findOne( { ticker } ).then( doc => {
if ( doc ) {
console.log( 'doc', doc )
} else {
console.log( 'no doc' )
}
} ).catch( err => {
console.log( 'err', err )
} )
这行得通...为什么?
答案 0 :(得分:0)
猫鼬的回调将错误作为第一个参数,并将结果作为第二个参数。
使用promise时,错误会像上面一样被捕获到catch处理程序中-结果级联到然后的处理程序中。
看看: