Sam*_*ath 5 observable rxjs typescript ionic3 angular
你能告诉我如何从async setTimeout() observable方法中访问一个值吗?我写的正常async方法如下所示.但是我们都知道它没有做我需要的.我怎么能observable在这里使用?任何指导都会非常感激.
page.ts
loader = this.loadingControllerService.dismissLoaderWhenNoInternet(loader);
Run Code Online (Sandbox Code Playgroud)
provider.ts
dismissLoaderWhenNoInternet(loader: Loading): Loading {
setTimeout(() => {
if (loader) {
loader = null;
return loader;//not working here
}
}, 5000);
return loader;
}
Run Code Online (Sandbox Code Playgroud)
要在es6中处理异步,你有两个选择:
Promise:用于函数只返回一次:
asyncPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Hello");
}, 2000)
})
}
this.asyncPromise().then(data=>{console.log(data)}); //Print Hello after 2s
Run Code Online (Sandbox Code Playgroud)
可观察:用于函数返回不止一次:
import { Observable } from 'rxjs/Observable';
asyncObservable() {
return new Observable(observer => {
setInterval(() => {
observer.next("Hi");
}, 1000)
})
}
this.asyncObservable().subscribe(data=>{console.log(data);}) //Print Hi every 1s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7466 次 |
| 最近记录: |