ionic2-设备运动返回可观察到,但退订给出错误

达瓦尔·沙(Dhaval Shah)

我正在尝试使用ionic2检测运动。这是我的detectMotion.ts的片段。

import {DeviceMotion} from 'ionic-native';
@Page({
    templateUrl: 'build/pages/pedometer/pedometer.html'
})
export class Pedometer {
   platform;
   watch;
   constructor () {
        this.platform = platform;
   }
   startWatching() {
       console.log('Starting to watch');
       this.watch = DeviceMotion.watchAcceleration(this.options);
       this.watch.subscribe(result => {this.detectMotion(result)});
   }
   stopWatching() {
       console.log('Stop Watching');
       // this.watch.dispose();
       this.watch.unsubscribe();
       // this.watch.clearWatch();
   }
   detectMotion(result) {
       console.log('Current Readings: '+ JSON.stringify(result) );
       //.....do something with the results.....
       this.stopWatching(); // Stop and wait for a second before restarting
       setTimeout(this.startWatching(), 1000);
   }
}

单击html中的按钮即可调用StartWatching。我已经尝试了我可以研究的所有3种选择。退订 处置 clearWatch但是一切都是徒劳的。我一直得到的确切错误是

error    ORIGINAL EXCEPTION: TypeError: Object #<Observable> has no method 'unsubscribe'

ioni2参考中,我了解到它返回了一个Observable

任何帮助或指针表示赞赏,谢谢

〜达瓦尔

波尔·克鲁伊特(Poul Kruijt)

据我所知,您应该存储subscriptionsubscribe调用返回的内容,并对其进行调用unsubscribe()

您将获得如下内容:

export class Pedometer {
   platform;
   watch;
   watchSub : Subscription;
   constructor () {
        this.platform = platform;
   }
   startWatching() {
       console.log('Starting to watch');
       this.watch = DeviceMotion.watchAcceleration(this.options);
       this.watchSub = this.watch.subscribe(result => {this.detectMotion(result)});
   }
   stopWatching() {
       console.log('Stop Watching');
       // this.watch.dispose();
       this.watchSub.unsubscribe();
       // this.watch.clearWatch();
   }
   detectMotion(result) {
       console.log('Current Readings: '+ JSON.stringify(result) );
       //.....do something with the results.....
       this.stopWatching(); // Stop and wait for a second before restarting
       setTimeout(this.startWatching(), 1000);
   }
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Ionic2错误:“没有存储提供程序”

启动画面后出现白屏,Ionic2,Android设备

Angular2 @ TypeScript可观察到的错误

在ionic2 rc0中找不到组件工厂错误

错误:ENOENT:无此文件或目录,在ionic2中打开

从ionic2模态返回值到父页面

Ionic2 proxyUrl在设备上不起作用

错误:无法编译程序-ionic2

Ionic 2提供程序可观察到的退订

Ionic2 / angular:如何知道两个不同的可观测对象何时终止?

ionic2 + angular2单击时导航到全局页面

Ionic2 / Angular2:在查询页面上显示JSON响应时出错

Ionic2 / Angular2:从组件到中心服务的导航方法

Ionic2 http请求。XML到JSON?

部署Android 4.2.2时出现Ionic2白屏错误:在严格模式下使用const

使用ionic2,Typescript,RollupJs,es2015模块的`lodash-es`导致TS错误

设备中的Ionic2 SqlStorage problema找不到“ libsqlc-native-driver.so”

将Wikitute集成到Ionic2移动应用程序

在angular2 / ionic2中同时执行可观察的请求

角度2可观察到可观察[]

扩展http类用于自定义用法ionic2 / Angular2导致错误

离子服务显示此错误 Ionic2

在真实设备上测试 Ionic2 应用程序

集成 Ionic2 Auth 服务时出错

无法将 Cordova 插件返回的值分配给 Ionic2 中的视图

运行 Cordova 构建 android ionic2 时出错

发布到 PlayStore 后的 Ionic2 Google 和 Facebook 身份验证问题

在真正的 android 设备中测试 ionic2

如何通过单击在ionic2中打开的相机上的后退按钮导航到页面