Typescript nestjs示例中的Async/Await

Typescript nestjs示例中的Async/Await,typescript,async-await,nestjs,Typescript,Async Await,Nestjs,我有一个问题,在示例23中,graphql代码首先在文件recipes.resolver.ts中,在某些地方它使用wait,而在其他地方它不使用 等待 @Mutation(returns => Recipe) async addRecipe( @Args('newRecipeData') newRecipeData: NewRecipeInput, ): Promise<Recipe> { const recipe = await this.recipe

我有一个问题,在示例23中,graphql代码首先在文件recipes.resolver.ts中,在某些地方它使用wait,而在其他地方它不使用

等待

@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);
  }
@变异(返回=>配方)
异步添加配方(
@Args('newRecipeData')newRecipeData:NewRecipeInput,
):承诺{
const recipe=wait this.recipesService.create(newRecipeData);
publish('RecipeEded',{RecipeEded:recipe});
返回配方;
}
不等待

@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);
  }
@Query(返回=>[Recipe])
配方(@Args()配方Args:recipesArgs):承诺{
返回此.recipesService.findAll(recipesArgs);
}
区别是什么?

在后一个示例中:

@Query(returns => [Recipe])
  recipes(@Args() recipesArgs: RecipesArgs): Promise<Recipe[]> {
    return this.recipesService.findAll(recipesArgs);
  }
@Query(返回=>[Recipe])
配方(@Args()配方Args:recipesArgs):承诺{
返回此.recipesService.findAll(recipesArgs);
}
该函数不做任何工作。
findAll()
的返回值本身就是一个承诺。此函数只是将返回的承诺转发给调用方。因此,无需等待执行任何IO或工作。

在后一示例中:

@Query(returns => [Recipe])
  recipes(@Args() recipesArgs: RecipesArgs): Promise<Recipe[]> {
    return this.recipesService.findAll(recipesArgs);
  }
@Query(返回=>[Recipe])
配方(@Args()配方Args:recipesArgs):承诺{
返回此.recipesService.findAll(recipesArgs);
}
该函数不做任何工作。
findAll()
的返回值本身就是一个承诺。此函数只是将返回的承诺转发给调用方。因此,无需等待执行任何IO或工作