【问题标题】:Async/Await in nestjs exampleNestjs 示例中的异步/等待
【发布时间】:2020-11-10 06:04:21
【问题描述】:

我有一个问题,在文件 recipes.resolver.ts https://github.com/nestjs/nest/blob/master/sample/23-graphql-code-first/src/recipes/recipes.resolver.ts 中的示例 23-graphql-code-first 中,它在某些地方使用 await,而在其他地方则不使用。

等待

@Mutation(returns => Recipe)
  async addRecipe(
    @Args('newRecipeData') newRecipeData: NewRecipeInput,
  ): Promise<Recipe> {
    const recipe = await this.recipesService.create(newRecipeData);
    pubSub.publish('recipeAdded', { recipeAdded: recipe });
    return recipe;
  }

无需等待

@Query(returns => [Recipe])
  recipes(@Args() recipesArgs: RecipesArgs): Promise<Recipe[]> {
    return this.recipesService.findAll(recipesArgs);
  }

有什么区别?

【问题讨论】:

    标签: typescript async-await nestjs


    【解决方案1】:

    在后一个例子中:

    @Query(returns => [Recipe])
      recipes(@Args() recipesArgs: RecipesArgs): Promise<Recipe[]> {
        return this.recipesService.findAll(recipesArgs);
      }
    

    该函数不做任何工作。 findAll() 的返回值本身就是一个承诺。这个函数只是将返回的 Promise 传递给调用者。因此,不需要await 任何要执行的 IO 或工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-08
      • 2021-11-23
      • 2018-01-05
      • 2017-12-02
      • 2021-09-18
      相关资源
      最近更新 更多