繁体   English   中英

在具有1个猫鼬查询的函数中使用async await很好吗?

[英]is it good to use async await in a function with 1 mongoose query?

在这种情况下,最好使用异步等待来让我感到困惑:

import User from models/User

export const getUser = async (_id) => {
  const user = await User.findOne({ _id })
  if (user) return user 
  return null 
}

export const getUser = async (_id) => {
   return await User.findOne({ _id })
}

由于猫鼬返回诺言,但由于与异步,我只是感到困惑,但是在这里,它只是对db的1条查询? 不同于此:

export const getUser = async (_id) => {
   try { 
     const user = await User.findOne({ _id })
     const comments = await User.findOne({ _id })
     return { user, comments }
   } catch(e) {
     console.log('something went wrong', e)
     return null
   }
}

由于它是2个查询,因此您必须等待第一个查询,然后等待第二个查询,但是当您只需要等待1个查询时,它可以解决吗?

异步函数将始终返回Promises,因此在单个find()情况下,实际上不需要异步/等待。 也可以这样做:


export const getUser = (_id) => {
   return User.findOne({ _id })
}

...

getUser(aUserId).then(user => console.log(user))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM