我正在使用angular 5和pouchdb。当我保存一个用户时,我需要立即在用户列表中显示它。同时,后台线程必须对用户的城市进行地理定位,并为该用户更新其坐标。
地理位置计算需要一两秒钟的时间来加载,这就是为什么我考虑在后台线程中运行。
我查看了angular service worker,但我认为它是用来获取离线文件的。
我也查看了angular cli web worker,但它没有提到如何调用后台服务并将值返回给主线程。
在angular 5中有没有运行后台线程的清晰方法?
发布于 2018-04-06 17:22:19
使用rxjs,您可以定义和创建一个执行您想要的操作的可观察对象:
myObservable = Observable.create(function (observer) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position => observer.next(position));
}
});然后使用它异步获取所需的值:
myObservable.subscribe(pushedValue => console.log(pushedValue));这并不是真正的多线程(我认为在这种情况下不需要),因为你需要更多地关注web工作者。
发布于 2019-11-29 06:55:13
对于Aangular 5或更低版本,我使用setTimout()
var _setTimeoutHandler = setTimout(() => { myfunction(){}})在退出前确保你清除了变量_setTimeoutHandler,以避免资源泄漏,我也在寻找更好的方法。
https://stackoverflow.com/questions/49685268
复制相似问题