2016-07-06 141 views
1

我在angular2下面的代码框架(TS):Angular2管理嵌套订阅

a() { 
    return callService1.do(
    z => { 
     callService2.subscribe(y => console.log("a callService2")) 
     console.log("callService1") 
    } 
) 
} 


b() { 
    a.subscribe(
    x => console.log("b subscribe callService1") 
    ) 
} 

结果,我有:

"callService1" 
"b subscribe callService1" 
"a callService2" 

我真的已经预计有"a callService2""b subscribe callService1",我不确定明白这个结果。在b()中我的a.subscribe之前完成callService2.subscribe可以做些什么?

回答

0

订阅不按它们在您的代码中出现的顺序运行。当Service1有一些数据时,运行“callService1”和“b subscribe callService1”。 “ServiceService2”将不会运行,直到Service2有一些数据。