回调函数作为角度2的依赖

时间:2018-03-27 20:40:04

标签: angular typescript

我正在使用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);
        }

    }
}

1 个答案:

答案 0 :(得分:0)

据我所知,我建议使用Promises / Observers。它更专业,解决了你试图实现的目标。

如果您需要案例,请写下我将分享