node.js使用promise如果有if...else怎么改成链式的

发布于 2022-09-11 21:03:28 字数 1431 浏览 18 评论 0

回调里面有if语句,再进入不同的回调的时候,一个怎么改成链式。

  const selArr = [userid, body.goodsid];
  const insArr = [userid, body.goodsid];
  const delArr = [userid, req.body.goodsid];
  // mysql
  const select = "select * from xx_member_favorite_product where FAVORITE_MEMBERS = ? AND FAVORITE_PRODUCTS = (SELECT ID FROM xx_product WHERE SN = ?)";
  const insert = "insert into xx_member_favorite_product set FAVORITE_MEMBERS = ?, FAVORITE_PRODUCTS = (SELECT ID FROM xx_product WHERE SN = ?)";
  const del = "delete from xx_member_favorite_product where FAVORITE_MEMBERS = ? and FAVORITE_PRODUCTS = (SELECT ID FROM xx_product WHERE SN = ?)";
  sqInfo.query(select, selArr)
    .then( oldData => {
      const data = oldData[0];
      if (data) {
        /**已有的话删除 */
        sqInfo.query(del, delArr)
          .then( () => {
            return res.status(200).json({
              err_code: 1,
              message: "移出收藏夹成功!"
            });
          })
          .catch( err => {
            next(err);
          })
      }
      if (!data) {
        sqInfo.query(insert, insArr)
          .then( () => {
            return res.status(200).json({
              err_code: 0,
              message: "收藏成功!"
            });
          })
          .catch( err => {
            next(err);
          })
      }
    })
    .catch( err => {
      next(err);
    })

这种里面有if判断的改这么改成链式

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

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

发布评论

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

评论(1

梦里°也失望 2022-09-18 21:03:28

基本上实现不了,用async/await吧

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