I have a simple service in Angular-6 app.
console.log("01: try to get Users...");
let subScription = this.userService.getUsers().subscribe(
data => {
this.Users = data;
console.log("03: set users...");
},
(error) => {
console.error("Error to get data: ", error)
},
() => {
console.log("04: complete get data....", )
});
console.log("02: return control to function call if service works like a promise")如果我使用较旧版本的rxjs,则console.log的输出为:
01: try to get Users...
02: return control to function call if service works like a promise
03: set users...
04: complete get data使用RxJS 6.X,输出如下所示:
01: try to get Users...
03: set users...
04: complete get data
02: return control to function call if service works like a promise有没有人有同样的问题?如果是,那么如何修复它,使其像以前一样工作?
谢谢,
奥斯汀
发布于 2018-07-14 05:13:44
你需要先展示userService.getUsers()的代码,然后我们才能说出它为什么是这样的。
但是,如果您想强制它是异步的,那么您可以在asap调度程序上安排订阅,如下所示:
import {subscribeOn} from 'rxjs/operators';
import {asapScheduler} from 'rxjs';
// ...
this.userService.getUsers().pipe(subscribeOn(asapScheduler)).subscribe(...)这确保了订阅调用异步发生,并将为您提供您以前拥有的行为。
https://stackoverflow.com/questions/51330307
复制相似问题