我正在尝试将两个需要紧接着执行的操作链接起来,如下所示:
public main(data) {
// A.
return this.methodA(data)
.map(resA => {
if (resA.hasOwnProperty('id')) {
console.log('gets triggered');
// B.
return this.methodB(resA).map(resB => {
console.log('does not get triggered', resB)
return resB.json();
})
} else {
return resA;
}
})
}
问题是第二种方法没有被触发。它只返回observable(resB)的observable和 not 结果。怎么能克服这个?
我很高兴也能兑现承诺,但我不确定这会怎么样?
答案 0 :(得分:1)
你可以这样做。
public main(data) {
return Observable.create(observer => {
this.methodA(data).subscribe(resA => {
if (resA.hasOwnProperty('id')) {
this.methodB(resA).subscribe(resB =>{
observer.next(resB);
})
} else {
observer.next(resA);
}
}
});
}
然后你必须订阅方法 main