Observable.forkJoin and array argument

后端 未结 1 1901
误落风尘
误落风尘 2020-12-05 13:00

In the Observables forkJoin documentation, it says that args can be an array but it doesn\'t list an example doing so:

https://github.com/Reactive-Extensions/RxJS/b

相关标签:
1条回答
  • 2020-12-05 13:42

    You need to import operators that are not loaded by default. That's what EXCEPTION Observable.xxxx is not a function usually means. You can either import all operators by adding complete rxjs to your bootstrap, for example:

    import 'rxjs/Rx'
    

    or by importing specific operators, in your case:

    import 'rxjs/add/observable/forkJoin'
    

    Another observation/suggestion about your code: try to stick with one syntax. You are mixing es5, es6, typescript... and while it is working it will only confuse you in the long run. Also, if you're just starting with Observables, try to avoid new Observable() and use creation operators instead;

    processStuff( inputObject ) {
      let observableBatch = [];
    
      inputObject.forEach(( componentarray, key ) => {
        observableBatch.push( this.http.get( key + '.json').map((res: Response) => res.json()) );
      });
    
      return Observable.forkJoin(observableBatch);
    }
    
    elsewhere() {
      this.processStuff( inputObject )
        .subscribe()
    }
    

    Finally, refer to the correct documentation - Angular2 uses RxJS v5 and link you provided is for RxJS v4. Docs are still incomplete for v5, but you can find descriptions in many of the source files.

    0 讨论(0)
提交回复
热议问题