使用TypeScript在回调内调用函数

时间:2017-05-22 13:32:53

标签: javascript typescript

鉴于以下内容: https://github.com/Uepaa-AG/p2pkit-cordova

我不知道我如何调用onEnabled为例。不使用`ts'这个例子显然效果很好。

但是现在我正在使用TypeScript,我似乎无法正确调用嵌套函数。

我有这个: cordova.plugins.p2pkit.enable("xyzzy", this.p2pkitCallback, function...

p2pkitCallback() {
        onEnabled() {
          console.log('p2pkit enbled');
          cordova.plugins.p2pkit.enableProximityRanging()
          cordova.plugins.p2pkit.startDiscovery('', cordova.plugins.p2pkit.HIGH_PERFORMANCE) // base64 encoded Data (bytes)=
    }

onEnabled()当然以红色突出显示... 我该如何重构代码?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在Typescript中传递和调用回调函数,如下所示;

声明一个回调函数参数并将其称为异步。

public generate(report: Report, callback: () => any = () => {}): void {
    this.generateReport(report, ReportType.PDF).then(callback);
}

将回调传递给函数的示例:

doFilter(payload): void {
    const callback = () => this.filter.hide();
    this.reportService.generate(payload.reportKey, callback);
  }

请注意,在我的示例中,我可选择将回调变量分配给noop函数,以防止在没有提供回调时内容被破坏。