Angular 6 - ForkJoin не имеет экспортированного участника - PullRequest
0 голосов
/ 06 мая 2018

Я обновился до Angular 6 и пытаюсь использовать ForkJoin, поэтому на моем сервисе у меня есть:

import { forkJoin } from 'rxjs/observable/forkJoin';

Но это не распознавание есть и я получаю:

...ForkJoin has no exported member

Как я могу это исправить?

Ответы [ 3 ]

0 голосов
/ 09 мая 2018

Измените ваш импорт на -

import {forkJoin} from 'rxjs';

Rxjs 6, наряду с более простыми путями импорта, теперь имеют более простые в использовании методы операторов. Вам не нужно использовать патч Observable сейчас.

Так вместо:

return Observable.forkJoin( this.http.get('jsonplaceholder.typicode.com/posts'), this.http.get('jsonplaceholder.typicode.com/users') ); 

Вы можете просто использовать:

return forkJoin(this.http.get('jsonplaceholder.typicode.com/posts'), this.http.get('jsonplaceholder.typicode.com/users'));

Надеюсь, это поможет!

0 голосов
/ 02 ноября 2018

service.ts:

   import { HttpClient } from '@angular/common/http';
   import {forkJoin} from 'rxjs';

   constructor(private http: HttpClient) { }
   getDetails(){
    let url1 ="../assets/sample.json";
    let url2 ="../assets/sampledata.json";
    //return this.http.get(url);
    return forkJoin(this.http.get(url1),
     this.http.get(url2));  
   }

component.ts:

import { Component,OnInit } from '@angular/core';
import { CommonServiceService } from './common-service.service';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  second: any;
  title = 'app';
  mydata:any;
  constructor(private service: CommonServiceService) {} 
  ngOnInit(){

    this.service.getDetails().subscribe(data=>{
      this.first= data[0];
      console.log(this.mydata);
      this.second = data[1];
      console.log(this.second);
    })
  }
}
0 голосов
/ 06 мая 2018

RxJS 6 имеет новые и более простые пути импорта и обходится без цепных операторов в пользу конвейерных операторов. Это делает библиотеку в целом более доступной для дерева и приведет к меньшим связкам.

Измените ваш импорт, как показано ниже, и он должен работать

import { forkJoin } from 'rxjs';

Еще несколько примеров использования rxjs при обновлении до angular

// creation and utility methods
import { Observable, Subject, pipe } from 'rxjs';
// operators all come from `rxjs/operators`
import { map, takeUntil, tap } from 'rxjs/operators';

Источник ответа - Обновление и краткое описание новых функций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...