相关疑难解决方法(0)

Observable.of不是一个函数

Observable.of在项目中导入函数时遇到问题.我的Intellij看到了一切.在我的代码中,我有:

import {Observable} from 'rxjs/Observable';
Run Code Online (Sandbox Code Playgroud)

在我的代码中我使用它:

return Observable.of(res);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

rxjs angular

168
推荐指数
9
解决办法
12万
查看次数

找不到模块'rxjs/subject/BehaviorSubject'

我正在使用Angular 2.

当我使用这两个中的任何一个时,我的程序运行良好:

import { BehaviorSubject } from 'rxjs/Rx';
import { BehaviorSubject } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)

但是,我尝试使用以下方法:

import { BehaviorSubject } from 'rxjs/subject/BehaviorSubject';
Run Code Online (Sandbox Code Playgroud)

但我失败了,我的浏览器控制台显示:

未捕获错误:找不到模块'rxjs/subject/BehaviorSubject'

我怎样才能正确使用第三种方式?谢谢

rxjs typescript rxjs5 angular

28
推荐指数
1
解决办法
3万
查看次数

订阅不是函数错误

我试图从服务订阅一个observable,它构建没有错误,但我在浏览器中查看时得到错误"this.service.getBanners(...).subscribe不是一个函数".

服务:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';

@Injectable()

export class BannerService {

    banners: any = ['1','2','3'];

    constructor(
    ) {}

    getBanners(): Observable<any[]> {
        return this.banners;
    }

    setBanners(banners: any[]): void {
        this.banners = banners;
    }

}
Run Code Online (Sandbox Code Playgroud)

零件:

import { Component, ViewEncapsulation, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { BannerService } from './../banner/banner.service';

@Component({
    selector: '.banner',
    templateUrl: './banner.component.html',
    styleUrls: ['./banner.component.sass'],
    encapsulation: ViewEncapsulation.None
})

export class BannerComponent implements OnInit {

    banners: any[]; …
Run Code Online (Sandbox Code Playgroud)

angular-services angular angular-observable

13
推荐指数
2
解决办法
4万
查看次数

rxjs:Observable.of(...).delay不是函数

我想通过以下方式在typescript中创建一个延迟的observable:

import 'rxjs/add/observable/of';

...

const o = Observable.of(values).delay(10000);
o.subscribe((v) => { alert(v); });
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

"Observable_1.Observable.of(...).delay is not a function"
Run Code Online (Sandbox Code Playgroud)

typescript rxjs5 angular-cli

5
推荐指数
1
解决办法
4291
查看次数

如何在测试angular2组件时模拟可观察的流?

我正在为angular2组件编写测试用例.

我创建了一个使用observable流的服务,如下所示:

import {Injectable}      from '@angular/core'
import {Subject} from 'rxjs/Subject';
import {User} from './user.model';

@Injectable()
export class UserService {

  selectedUserInstance:User = new User();

  // Observable selectedUser source
  private selectedUserSource = new Subject<User>();

  // Observable selectColumn stream
  selectedUser$ = this.selectedUserSource.asObservable();

  // service command
  selectUser(user:User) {
    this.selectedUserInstance=user;
    this.selectedUserSource.next(user);
  }
}
Run Code Online (Sandbox Code Playgroud)

现在在我的组件中,我订阅了这个流:

getSelectedUser() {
    this.subscriptionUser = this.userService.selectedUser$.subscribe(
      selectedUser => {
        this.selectedUser = selectedUser;
      }
    );
}
Run Code Online (Sandbox Code Playgroud)

现在在我的spec.ts文件中,我想将此流模拟为:

spyOn(userService, 'selectedUser$')
        .and.returnValue(Observable.of({
            'name': 'bhushan',
            'desc': 'student'
        }));
Run Code Online (Sandbox Code Playgroud)

但它一直给我以下错误:

错误:spyOn找不到要监视selectColumn $()的对象

有没有办法做到这一点?

我很长时间以来一直坚持这个问题.

任何输入?

谢谢

jasmine angular2-testing angular2-observables angular

4
推荐指数
1
解决办法
6083
查看次数

类型'{Property:string,Property2:string}不能分配给Observable <Filters []>类型

我有一个方法:

getFilters(): Observable<Filters[]> {
    let filters: Observable<Filters[]> = [
      {
        property: "Value",
        property2: "Value2"
     },
     {
       property: "Value3",
       property2: "Value4"
     }
  return filters;
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

类型'{Property:string,Property2:string}不能分配给Observable类型.

observable typescript angular

3
推荐指数
1
解决办法
44
查看次数