我正在使用angular来编写一个扩展类的服务。在我的服务的构造函数中,我正在调用超级构造函数。超级构造函数需要一个回调函数。我不能这样做。因为超级必须这样做 在派生类的构造函数中访问它之前调用。所以我将回调作为参数传递给构造函数。这种方法的问题是我的服务用户不应该通过回调函数。请建议我在这里调用回调函数的方法。 我需要这个回调,因为parentService返回我的回调结果,我需要在我的代码中进一步使用。
@Injectable()
export class MyService extends someClass{
constructor(@Inject(MY_CONFIG) private config: MyConfig, callback :(results: string, errorDesc: string) => void ) {
//can't do this.callback
super(config.id, config.name, callback);
}
callback(results: string, errorDesc: string)
{
//do something here with the results
}
}
//Non angular (Pure typescript class)
export class someClass
{
private _resultReceivedCallback: resultReceivedCallback = null;
constructor(id: any , name : any , resultReceivedCallback: resultReceivedCallback)
{
this._resultReceivedCallback = resultReceivedCallback;
if (this._resultReceivedCallback) {
//process results here
this._resultReceivedCallback.call( results, errorDesc);
}
}
}
答案 0 :(得分:0)
据我所知,我建议使用Promises / Observers。它更专业,解决了你试图实现的目标。
如果您需要案例,请写下我将分享