【发布时间】:2016-12-17 11:12:45
【问题描述】:
我有这 3 个触发 POST api 调用的函数,我想将成功/失败消息返回给调用它的人 (Observable<string>)。
所以消息是相似的,我不想重复自己,然后我添加了一个新功能来获取成功消息。但由于某种原因它不起作用,我在运行应用程序时看到一个空白页面,但如果不是调用 getSuccessMessage 我只是传递一个常规字符串(“Something”)它可以工作......
奇怪,这些是我的功能:
export enum ListType {Cars, Animals, Books}
public updateOne(carList: Car[]): Observable<string> {
return this._myApiSevice.postCarsNewOrder(carList)
.map(response => this.getSuccessMessage(ListType.Cars)) //update succeeded
.catch(error => Observable.of("FAILURE: post to Cars did not succeed!"));
}
public updateTwo(animalList: Animal[]): Observable<string> {
return this._myApiSevice.postAnimalsNewOrder(animalList)
.map(response => this.getSuccessMessage(ListType.Animals))
.catch(error => Observable.of("FAILURE: post to Animals did not succeed!"));
}
public updateThree(bookList: Book[]): Observable<string> {
return this._myApiSevice.postBooksNewOrder(bookList)
.map(response => this.getSuccessMessage(ListType.Books)) //update succeeded
.catch(error => Observable.of("FAILURE: post to Books did not succeed!"));
}
public getSuccessMessage(listType: ListType): string {
return "SUCCESS: post to " + ListType[listType] + "succeed!";
}
你看出什么不对了吗?
这是控制台中的错误:
异常:错误:未捕获(承诺中):无法解析所有参数 对于'MyCmp'(未定义,ElementRef,MdDialog)。确保 所有参数都用 Inject 修饰或具有有效类型 注释,并且 'MyCmp' 用 Injectable 装饰。
枚举在另一个类中被声明,这将导入枚举来自的类。
如果你对我有一个建议,如何将失败消息也收集到一个带有成功消息的函数中,这将是可爱的,谢谢@!
【问题讨论】:
-
您有checked your console 的错误吗?
-
@MikeC 刚刚将错误添加到问题中,抱歉我之前做过。
标签: javascript angular typescript typescript1.8 typescript1.5