首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular 5在后台运行不同的线程

angular 5在后台运行不同的线程
EN

Stack Overflow用户
提问于 2018-04-06 12:22:39
回答 2查看 5.2K关注 0票数 0

我正在使用angular 5和pouchdb。当我保存一个用户时,我需要立即在用户列表中显示它。同时,后台线程必须对用户的城市进行地理定位,并为该用户更新其坐标。

地理位置计算需要一两秒钟的时间来加载,这就是为什么我考虑在后台线程中运行。

我查看了angular service worker,但我认为它是用来获取离线文件的。

我也查看了angular cli web worker,但它没有提到如何调用后台服务并将值返回给主线程。

在angular 5中有没有运行后台线程的清晰方法?

EN

回答 2

Stack Overflow用户

发布于 2018-04-06 17:22:19

使用rxjs,您可以定义和创建一个执行您想要的操作的可观察对象:

代码语言:javascript
复制
    myObservable = Observable.create(function (observer) {
      if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(position => observer.next(position));
      }
    });

然后使用它异步获取所需的值:

代码语言:javascript
复制
myObservable.subscribe(pushedValue => console.log(pushedValue));

Here is a running example

这并不是真正的多线程(我认为在这种情况下不需要),因为你需要更多地关注web工作者。

票数 1
EN

Stack Overflow用户

发布于 2019-11-29 06:55:13

对于Aangular 5或更低版本,我使用setTimout()

代码语言:javascript
复制
 var _setTimeoutHandler = setTimout(() => {  myfunction(){}})

在退出前确保你清除了变量_setTimeoutHandler,以避免资源泄漏,我也在寻找更好的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49685268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档