Prisma 创建/更新无需等待

Ash*_*n N 7 database postgresql asynchronous node.js prisma

我正在为 Prisma 中的数据库操作编写一个自动化脚本。我使用 PostgreSQL 作为我的数据库。我注意到,每当我在数据库更新上省略“await”关键字时,它不会显示任何错误,但不会反映数据库更改。

// Does not work
prisma.model.create({
  data: {
    name: 'tai',
    schema: {
      abc: 8,
      def: 8,
    },
  }
})
Run Code Online (Sandbox Code Playgroud)

但是一旦我使用“await”,数据库就会更新。我浏览了文档但没有任何运气。任何人都可以解释这种行为的目的吗?以及他们如何设法实施它。

// Works
await prisma.model.create({
  data: {
    name: 'tai',
    schema: {
      abc: 8,
      def: 8,
    },
  }
})
Run Code Online (Sandbox Code Playgroud)

Tas*_*mam 14

发生这种情况是因为 Prisma 查询是 then-ables,这意味着它们仅在您调用awaitor .then()or时执行.catch()。这称为惰性评估。这与立即开始执行的常规承诺不同。Prisma 文档存储库中有一个关于此问题的问题,您可以查看该问题以获取更多信息。

如何实现:查看这个库: https: //github.com/sindresorhus/p-lazy

  • 我本来想拥抱你,但因为新冠疫情,我不会拥抱你。 (4认同)