Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度误差TS2322:Type'Promise_Angular_Typescript - Fatal编程技术网

Angular 角度误差TS2322:Type'Promise

Angular 角度误差TS2322:Type'Promise,angular,typescript,Angular,Typescript,我在Coursera学习Angular 5,对Promise主题有问题。我只是重复了一个选择器代码,出现了一个错误TS2322。这是我的服务文件 import { Injectable } from '@angular/core'; import { Dish } from '../shared/dish'; //it's a class import { DISHES } from '../shared/dishes'; //it's const @Injectable() export c

我在Coursera学习Angular 5,对Promise主题有问题。我只是重复了一个选择器代码,出现了一个错误TS2322。这是我的服务文件

import { Injectable } from '@angular/core';
import { Dish } from '../shared/dish'; //it's a class
import { DISHES } from '../shared/dishes'; //it's const

@Injectable()
export class DishService {

  getDishes(): Promise<Dish[]> {
    return Promise.resolve(DISHES);
  }

  getDish(id: number): Promise<Dish> {
    return Promise.resolve(DISHES.filter((dish) => (dish.id === id))[0]);
  }

  getFeaturedDish(): Promise<Dish> {
    return Promise.resolve(DISHES.filter((dish) => dish.featured)[0]);
  }
我发现了一些错误:

src/app/dishdeail/dishdeail.component.ts26,4:错误TS2322:类型“Promise”不能分配给类型“Dish”。 类型“Promise”中缺少属性“id”。 src/app/home/home.component.ts28,5:错误TS2322:类型“Promise”不可分配给类型“Dish”。 src/app/menu/menu.component.ts23,4:错误TS2322:类型“Promise”不可分配给类型“Dish[]”。 类型“Promise”中缺少属性“includes”

我认为我的服务有问题,但我找不到对我有帮助的话题。请告诉我出了什么问题。

你是在试图把这道菜变成一道菜,而它是一道菜。 删除代码中的分配并设置此项。仅在收到数据后:

this.dishService.getDishes()
      .then(dishes => this.dishes = dishes);

是的,你说得对。我没有注意。谢谢大家,-
this.dishService.getDishes()
      .then(dishes => this.dishes = dishes);