如何异步将Observable值传递给多个Observable调用?

时间:2017-05-12 17:39:07

标签: angular typescript rxjs observable

我想从一个observable中发出一个值并使用该值作为参数来进行两次http调用,然后订阅这两个调用的连接结果,尽管它没有拥有要连接。在这种情况下我尝试使用.zip运算符,但我似乎无法使其正常工作。只进行.getSymbolData调用。我应该使用另一个运营商吗?

   this.symbolSearchService.getSymbolData('cmcsa')
      .zip(stock => {
        console.log('stock', stock); <-- looks good
        this.symbolSearchService.getResearchReportData(stock);
        this.symbolSearchService.getPGRDataAndContextSummary(stock);
      })
      .subscribe(
        res => {
          console.log('res', res); <-- undefined
        },
        err => this.sharedService.handleError
      );

修改 我忘了提到我想保留最初可观察的值。所以我想这样做.stock =股票某处。

1 个答案:

答案 0 :(得分:1)

您正在寻找的是switchMap和combineLatest运算符。它允许您返回一个新的observable。

Dim xDoc As MSXML2.DOMDocument
Set xDoc = New MSXML2.DOMDocument

Dim PI
Set PI = xDoc.createProcessingInstruction("xml", "version='1.0' encoding='windows-1250'")
xDoc.insertBefore PI, xDoc.childNodes.Item(0)

If xDoc.Load("C:\Test.xml") Then
    Debug.Print "Success"
Else
    Debug.Print xDoc.parseError.reason
End If

Set xDoc = Nothing