Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mongoose中的同步和异步vs回调_Javascript_Node.js_Mongodb_Asynchronous_Mongoose - Fatal编程技术网

Javascript mongoose中的同步和异步vs回调

Javascript mongoose中的同步和异步vs回调,javascript,node.js,mongodb,asynchronous,mongoose,Javascript,Node.js,Mongodb,Asynchronous,Mongoose,嗨,伙计们,我是node的新手,我有一个简单的问题,这两个sniped的区别是什么 注意:我知道异步/等待功能,在前端应用程序中,这是处理异步操作的最佳实践,但在使用mongoose的节点中,我想知道哪种方法更适合处理 第一个解决方案 第二种解决方案 我想知道当我有猫鼬的错误时,第二种方法可以抛出这样的错误 // in callback function if (err) { throw Error(); } 但是在async/await解决方案中如何处理这个问题呢您只需将它抛出或记

嗨,伙计们,我是node的新手,我有一个简单的问题,这两个sniped的区别是什么

注意:我知道异步/等待功能,在前端应用程序中,这是处理异步操作的最佳实践,但在使用mongoose的节点中,我想知道哪种方法更适合处理

第一个解决方案

第二种解决方案

我想知道当我有猫鼬的错误时,第二种方法可以抛出这样的错误

// in callback function 

if (err) {

throw Error();

}


但是在
async/await
解决方案中如何处理这个问题呢

您只需将它抛出或记录到catch块中:

try {
     const data = await Model.find();
     const some = await new Model(data).save();
   } catch(e) {
     throw e; 
     next(e);
 }
async/await像promises一样工作,但没有嵌套回调,它会抛出一个与第一个错误同步的错误,并停止执行其他行

根据您编辑的注释:
在nodejs中,您应该始终使用异步解决方案,甚至对于任何与javascript相关的内容,它都是最好的可组合和可重用的解决方案

// in callback function 

if (err) {

throw Error();

}

try {
     const data = await Model.find();
     const some = await new Model(data).save();
   } catch(e) {
     throw e; 
     next(e);
 }