在 angular 6 中使用 toPromise 的正确方法

san*_*dum 5 javascript observable rxjs angular angular6

我正在尝试从多个 http 请求中检索数据,我决定避免嵌套 subscribe()。我只想以异步等待风格编写代码。

const diagnostics = this.http.get(url, {params: params}).toPromise()
console.log(diagnostics);
Run Code Online (Sandbox Code Playgroud)

但我明白了:

// ZoneAwarePromise {__zone_symbol__state: null, __zone_symbol__value: Array(0)}
Run Code Online (Sandbox Code Playgroud)

我不知道如何处理以提取数据。

有没有办法避免回调?

.then(res => {}).catch()
Run Code Online (Sandbox Code Playgroud)

Jak*_*tad 3

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

听起来您可能想看看这个,您可以整理一系列承诺,并且本质上可以“等待”所有承诺完成,然后再对值采取行动。

myPromiseArray.push(this.http.get(url, {params: params}).toPromise()) Promise.all(myPromiseArray).then(alltheValuesInAnArray => {})