Typescript nestjs示例中的Async/Await
我有一个问题,在示例23中,graphql代码首先在文件recipes.resolver.ts中,在某些地方它使用wait,而在其他地方它不使用 等待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
@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或工作