收藏
回答

求助大佬,为什么我改变变量的值之后输出的仍然是之前的值?

如图,第一个UU输出的是2没有问题,但第二个输出却是0?

我用该方法在另一个页面实现了的,不知道为什么会出现这种问题

回答关注问题邀请回答
收藏

3 个回答

  • 零²⁰²⁴
    零²⁰²⁴
    02-26

    因为 db.xxx 对数据库的操作是异步的,所以执行到 2 的时候【UU = res.total】还没有执行,自然是输出 0

    02-26
    有用 1
    回复 7
    • AAAAAAAAAA
      AAAAAAAAAA
      02-26
      可是我另一个地方也这样却成功了,那应该怎么改呀
      02-26
      回复
    • 零²⁰²⁴
      零²⁰²⁴
      02-26回复AAAAAAAAAA
      说明你另一个地方应该不是这样使用的,或者有其他原因,可以贴代码出来。正常来说你应该在 success 回调中去获取值,具体看你想要实现的效果是什么
      02-26
      回复
    • AAAAAAAAAA
      AAAAAAAAAA
      02-26回复零²⁰²⁴
      是这样用的啊
      02-26
      回复
    • AAAAAAAAAA
      AAAAAAAAAA
      02-26回复零²⁰²⁴
      就是想把这个值取出来,用作后面循环的边界值。想实现这个
      02-26
      回复
    • 零²⁰²⁴
      零²⁰²⁴
      02-26回复AAAAAAAAAA
      这里你后续使用 aa 的地方在哪里
      02-26
      回复
    查看更多(2)
  • showms
    showms
    02-26

    加await呗

    类似这样

    const result = await db.collection("xxx").count()

    02-26
    有用
    回复 1
    • AAAAAAAAAA
      AAAAAAAAAA
      发表于移动端
      02-26
      谢谢
      02-26
      回复
  • 启年
    启年
    02-26

    db.collection是异步方法 学习一下异步的相关知识吧~

    02-26
    有用
    回复 1
    • AAAAAAAAAA
      AAAAAAAAAA
      02-26
      那应该怎么改呀
      02-26
      回复
登录 后发表内容