如何将对象传递给rxjs subscription()回调函数?

维加维尔(Will de la Vega)

我正在使用cordova-plugin-network-information开发Ionic2应用程序,我正在从app.ts订阅connect和断开连接事件,并希望能够将对NavController和Loading组件的引用传递到订阅中()回调,因此无论何时发生断开连接事件,我都可以在用户界面的顶部为用户提供一个Loading叠加层。我看到在回调中,对“ this”对象的引用更改为一个名为“ SafeSubscriber”的对象,我认为这是其Observer对象的rxjs类型的类,这里的问题是我无法获取那些对象使用Chrome DevTools,在app.ts中可以在回调中找到此代码的实例,但我也无法通过此上下文找到访问App对象本身的方法。

这是我的代码:

    ngOnInit()
    {
      // Nav Controller:
      this.nav = <NavController>this.app.getComponent('nav');

      // Disconnect Detection
      let disconnectSubscription = Network.onDisconnect().subscribe(() =>
      {
          console.log('Disconnect Detected');
          // Push Loading into nav stack here...!
          // this.nav.present(this.loading);  <- no this object...
      });
    }

这是我在Chrome DevTools中查询“ this”对象时得到的信息(应该将其原始上下文保留在lambda [fat arrow]函数中,这对吗?)

在此处输入图片说明

我尝试在进行订阅之前设置一个“ that”对象,以使变量“ this”不会干扰回调“ this”范围,在这种情况下它不起作用,因为立即声明了“ that”在断开连接事件被触发时,在回调内部未定义subscribe()(之前是:any = this;)之前。

我知道这不是放置直接更改UI的代码的最佳位置,但是我看不到其他位置,因为我需要的是全局事件处理程序,该事件处理程序通过在未检测到连接和用户的情况下设置此覆盖层来工作正在查看应用内的某些页面。

我认为应该有一个非常简单而优雅的解决方案,但是我似乎找不到它。有没有一种方法可以将参数传递给subscribe()函数?我需要某种带有引用的对象?

提前致谢。

汤安·阮(Toan Nguyen)

我很确定简单的闭包应该可以解决问题。试试这个:

ngOnInit()
    {
      // Nav Controller:
     var nav = <NavController>this.app.getComponent('nav');

      // Disconnect Detection
      let disconnectSubscription = Network.onDisconnect().subscribe(() =>
      {
          console.log('Disconnect Detected');          
          nav.present(true);  
      });
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将对象传递给rxjs subscription()回调函数?

来自分类Dev

如何将对象传递给单独的函数-Python

来自分类Dev

如何将对象传递给CasperJS函数

来自分类Dev

如何将对象传递给 std::accumulate 函数?

来自分类Dev

在jQuery中将对象传递给回调函数

来自分类Dev

在jQuery中将对象传递给回调函数

来自分类Dev

如何将对象传递给另一个模型的回调?

来自分类Dev

如何将“此”对象传递给使用协议的函数中调用的回调函数

来自分类Dev

如何将对象传递给函数并将结果返回给原始函数

来自分类Dev

jQuery如何将对象传递给另一个函数

来自分类Dev

如何将对象传递给TypeScript中的泛型函数

来自分类Dev

Javascript-如何将原始对象传递给回调函数

来自分类Dev

Javascript-如何将原始对象传递给回调函数

来自分类Dev

如何通过引用将对象传递给构造函数

来自分类Dev

如何将对父对象的引用传递给AngularJS $ resource查询回调函数?

来自分类Dev

c ++:将对象传递给函数

来自分类Dev

将对象传递给PowerShell函数

来自分类Dev

将对象传递给函数方法

来自分类Dev

将'this'对象传递给$ http服务的'then'回调函数

来自分类Dev

如何将std :: bind对象传递给函数

来自分类Dev

如何将json对象传递给$ eval函数

来自分类Dev

如何将错误对象传递给socket.io回调

来自分类Dev

将对象传递给函数调用中的函数

来自分类Dev

如何将对象的属性作为参数传递给函数

来自分类Dev

如何将对象列表传递给函数

来自分类Dev

如何将对象作为参数传递给函数

来自分类Dev

如何将对象列表传递给线程函数

来自分类Dev

如何遍历嵌套类并将对象传递给函数

来自分类Dev

如何在C ++中通过引用将对象传递给函数?

Related 相关文章

  1. 1

    如何将对象传递给rxjs subscription()回调函数?

  2. 2

    如何将对象传递给单独的函数-Python

  3. 3

    如何将对象传递给CasperJS函数

  4. 4

    如何将对象传递给 std::accumulate 函数?

  5. 5

    在jQuery中将对象传递给回调函数

  6. 6

    在jQuery中将对象传递给回调函数

  7. 7

    如何将对象传递给另一个模型的回调?

  8. 8

    如何将“此”对象传递给使用协议的函数中调用的回调函数

  9. 9

    如何将对象传递给函数并将结果返回给原始函数

  10. 10

    jQuery如何将对象传递给另一个函数

  11. 11

    如何将对象传递给TypeScript中的泛型函数

  12. 12

    Javascript-如何将原始对象传递给回调函数

  13. 13

    Javascript-如何将原始对象传递给回调函数

  14. 14

    如何通过引用将对象传递给构造函数

  15. 15

    如何将对父对象的引用传递给AngularJS $ resource查询回调函数?

  16. 16

    c ++:将对象传递给函数

  17. 17

    将对象传递给PowerShell函数

  18. 18

    将对象传递给函数方法

  19. 19

    将'this'对象传递给$ http服务的'then'回调函数

  20. 20

    如何将std :: bind对象传递给函数

  21. 21

    如何将json对象传递给$ eval函数

  22. 22

    如何将错误对象传递给socket.io回调

  23. 23

    将对象传递给函数调用中的函数

  24. 24

    如何将对象的属性作为参数传递给函数

  25. 25

    如何将对象列表传递给函数

  26. 26

    如何将对象作为参数传递给函数

  27. 27

    如何将对象列表传递给线程函数

  28. 28

    如何遍历嵌套类并将对象传递给函数

  29. 29

    如何在C ++中通过引用将对象传递给函数?

热门标签

归档