mongoose中promise的then为何不能传递data?

发布于 2022-09-05 05:04:54 字数 1223 浏览 16 评论 0

我想用promise将db.save操作异步变同步,为何这么写,不能将save成功后的res传递给then()

function insert(data){
    return new Promise((resolve,reject)=>{
        var user = new User({
            username : data.username,                 //用户账号
            userpwd: data.psw,                            //密码
            // userage: 37,                                //年龄
            logindate : new Date()                      //最近登录时间
        });
        let saveStatus=user.save(function (err, res) {
                console.log("userSave")

                if (err) {
                    console.log("Error:" + err);
                    // result=res
                }
                else {
                    console.log("插入成功")
                    console.log("Res:" + res);
                    // result=res
                }

            });        
    })
}

module.exports=insert

分割线 insert操作

   insert({
      username:user.userName,
      psw:user.psw
   }).then((response)=>{
      console.log("promise对象",response)
      res.json(response)
   })
  1. 如何正确使用promise?

  2. node中是不是await和async也能达到同样目的,如果是该怎么改

谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尐籹人 2022-09-12 05:04:54
        let saveStatus=user.save(function (err, res) {
                console.log("userSave")

                if (err) {
                    console.log("Error:" + err);
                    reject(err);
                }
                else {
                    console.log("插入成功")
                    console.log("Res:" + res);
                    resolve(res);
                }

            });   
时常饿 2022-09-12 05:04:54

save函数只是保存数据,回调函数中只包含一个错误参数,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文