获取“类型'承诺<iresourceweightage>'不能分配给'IResourceWeightage'。”通过服务方法调用调用方法时出错?

时间:2017-01-03 13:45:00

标签: angular promise angular-promise angular-services

我在我用于获取ResourceWeightage详细信息的服务之一中使用此方法:

getResourceLevelProgress(learning_node_id: number): Promise<IResourceWeightage> {
return this.getOverallProgressData()
  .then(learning_nodes => learning_nodes.find(node => node.learning_node_id === learning_node_id).resource_weightage);

}

以下是我访问此方法以获取ResourceWeightage详细信息的组件中的方法:

声明:

resourceWeightage: IResourceWeightage;

呼叫:

this.resourceWeightage = this.progressUpdateService.getResourceLevelProgress(this.learningNodeId);

访问此变量时出现此错误:

  

类型'Promise'不能分配给IResourceWeightage类型。

1 个答案:

答案 0 :(得分:0)

那是因为getResourceLevelProgress正在回复承诺。

您可以将resourceWeightage的声明更改为:

resourceWeightage: Promise<IResourceWeightage>;

或者将呼叫更改为:

this.progressUpdateService.getResourceLevelProgress(this.learningNodeId).then(rw => this.resourceWeightage = rw);