gpt4 book ai didi

javascript - Angular 4/5 > httpclientmodule .get() 链接函数和返回数据类型

转载 作者:行者123 更新时间:2023-11-30 14:50:29 25 4
gpt4 key购买 nike

请查看两个答案。 (感谢 JLRishe 和 AngularInDepth.com)

AngularInDepth 还在他的帖子中添加了有趣的拦截器和 HttpClient 机制链接:

https://blog.angularindepth.com/insiders-guide-into-interceptors-and-httpclient-mechanics-in-angular-103fbdb397bf


使用RxJS和HttpClientModule,当调用HttpClient.get()时,这个链中的返回值是什么?

constructor (private _http: HttpClient) {
...
this._http.get(url).map(res=>res.json()).toPromise() // how does this chaining work?

据我所知,_http.get(url) 返回一个 observable,但我们将 .map() 链接到 .get()方法。

我还猜测以下 .map() 用作接收 http-response 对象,我们立即将其转换为 json 对象。最后,整个 observable 被转换为带有 .toPromise() 的 promise,它似乎并不关心 .map().get( )

  1. 到目前为止,我了解到 _http.get() 返回一个可观察对象,还将提供 http-response 对象(作为下一个或回调函数)
  2. 是 .map() 函数,仅作用于响应对象,不会更改整个 _http.get() 函数的返回类型。 (返回类型与 observable 保持一致)?我的假设是否正确?
  3. 一般来说,如果上述情况成立,JS 如何确定哪种链接函数适用于回调数据以及哪种适用于返回类型?我们如何实现我自己的自定义函数,以便我的链函数能够严格地处理回调数据(如果我使用的术语正确,请纠正我)或返回类型?
  4. 我们能否将 .map() 添加到所有异步函数(promise、observables、callbacks)以处理它们的回调数据?同样,.toPromise() 是否适用于所有异步函数以将它们转换为 promise?

最佳答案

  1. So far I understand that _http.get() returns an observable and will also provide http-response object (as next or callback function)

_http.get() 返回可观察到的 of 个 http 响应对象。您可以将 observable 视为值流上的一个窗口,在这种情况下,该流将只是一个值(结果)

  1. is .map() function acting just on the response object and will not change the return type of the whole _http.get() function.

是的。它创建了一个新的 observable,其中原始 observable 的值已经以某种方式进行了转换。在这种情况下,该转换是 res => res.json()

  1. In general, if the above is true, how does JS figure out what kind of chaining function would work on the callback data and which would work on the return type? How do we implement my own custom function so that my chain function would strictly work on the callback data (correct me if I am using the right term) OR the return type?

这个问题我不是很懂。传递给 map 的函数需要将 observable 包含的类型作为输入,并生成某种类型作为输出。

  1. Can we add .map() to all async functions (promise,observables,callbacks) to work on their callback data? Likewise, does .toPromise() work on all async function to convert them to promises?

您可以在任何可观察对象上使用 .map(),也可以在任何可观察对象上使用 .toPromise()。请记住,.toPromise() 为来自 observable 的 first 值创建了一个 promise ,因此它通常适用于产生单个值的 observables(如一个确实)。

关于javascript - Angular 4/5 > httpclientmodule .get() 链接函数和返回数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48200426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com