Angular 为什么我的订阅函数打印的是对象而不是http请求的结果?

Angular 为什么我的订阅函数打印的是对象而不是http请求的结果?,angular,typescript,asynchronous,rxjs,Angular,Typescript,Asynchronous,Rxjs,此代码打印此内容的原因: Observable {_isScalar: false, source: Observable, operator: MapOperator} 而不是我的服务返回的数组 const trendingRentals: Observable<any> = this.rentalService.getRentals(); const commonRentals: Observable<any> = this.rentalServic

此代码打印此内容的原因:

Observable {_isScalar: false, source: Observable, operator: MapOperator}
而不是我的服务返回的数组

    const trendingRentals: Observable<any> = this.rentalService.getRentals();
    const commonRentals: Observable<any> = this.rentalService.getCommonRentalsTest();
    const luxuryRentals: Observable<any> = this.rentalService.getLuxuryRentalsTest();

    const concatenation =  concat( [trendingRentals, commonRentals, luxuryRentals]);
    concatenation.subscribe(
      x => console.log(x)
    )
const trendingRentals:Observable=this.rentalService.getRentals();
const commonRentals:Observable=this.rentalService.getCommonrentalTest();
const luxuryRentals:Observable=this.rentalService.getLuxuryRentalsTest();
const concatenation=concat([trendingRentals,commonRentals,luxuryRentals]);
连接.subscribe(
x=>console.log(x)
)
我修改了
const concatenation=concat([trendingRentals,commonRentals,luxuryRentals])
对于
const concatenation=concat(趋势租赁、公共租赁、豪华租赁)
现在它工作得很好,但是我不明白为什么。。。有人能给我解释一下发生了什么事吗?

我修改了
const concatenation=concat([trendingRentals,commonRentals,luxuryRentals])
对于
const concatenation=concat(趋势租赁、公共租赁、豪华租赁)

现在它工作得很好,但是我不明白为什么。。。有人能给我解释一下发生了什么吗?

这里的concat静态操作符接受可观察的作为参数,而不是数组

如果传递的是一组观察值,则会返回嵌套的观察值


阅读互联网以获得更全面的答案,并查找和一些参考资料

这里的concat静态操作符接受可观察的作为参数,而不是数组

如果传递的是一组观察值,则会返回嵌套的观察值


阅读互联网以获得更全面的答案,并查找和一些参考资料

您调用的原始代码

concat([obs1, obs2, ..., obsN])
在技术层面上,这只是一个为concat函数提供错误参数的情况,正如它所期望的那样

concat(obs1, obs2, ..., obsN)
正如安德鲁也指出的那样。您可以在上阅读更多关于rxjs函数的信息

更深入一点:concat所做的是从其他可观测数据返回一个可观测数据。在执行时调用concat时,它会执行您放入的每个观察对象,并等待每个观察对象按顺序完成后返回


数组[obs1,…,obsN]是不可观察的,因此会出现“奇怪”的响应。

您调用的原始代码

concat([obs1, obs2, ..., obsN])
在技术层面上,这只是一个为concat函数提供错误参数的情况,正如它所期望的那样

concat(obs1, obs2, ..., obsN)
正如安德鲁也指出的那样。您可以在上阅读更多关于rxjs函数的信息

更深入一点:concat所做的是从其他可观测数据返回一个可观测数据。在执行时调用concat时,它会执行您放入的每个观察对象,并等待每个观察对象按顺序完成后返回


数组[obs1,…,obsN]是不可观测的,因此出现了“奇怪”的响应。

非常感谢!!!我是web开发新手,所以我在理解可观察对象、承诺和异步函数方面遇到了困难:C为像我这样的新手推荐任何资源吗?非常感谢!!!我是web开发新手,所以我在理解可观察对象、承诺和异步函数方面遇到了困难:C为像我这样的新手推荐什么资源?