Reputation: 31940
I've created the following component, following the Angular code example for constructing a new observable (https://angular.io/guide/observables#creating-observables).
I get an error on the line where I try to create the new Observable, as I've indicated in the code sample below. The error is 'supplied parameters do not meet signature of call target'
What have I missed?
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-constructed-observable',
templateUrl: './constructed-observable.component.html',
styleUrls: ['./constructed-observable.component.css']
})
export class ConstructedObservableComponent implements OnInit {
constructor() { }
// error on Observable below 'supplied parameters do not meet signature of call target'
const sequence = new Observable(sequenceSubscriber);
function sequenceSubscriber(observer) {
observer.next(1);
observer.next(2);
observer.next(3);
observer.complete();
return {unsubscribe() {}};
}
ngOnInit() {
this.sequence.subscribe({
next(num) { console.log(num); },
complete() { console.log('completed'); }
});
}
}
Upvotes: 0
Views: 99
Reputation: 4788
sequence
is used in ngOnInit
but not defined as class property.
Fix. component.ts:
sequence: Observable<number>;
constructor() {
// error on Observable below 'supplied parameters do not meet signature of call target'
this.sequence = new Observable(sequenceSubscriber);
function sequenceSubscriber(observer) {
observer.next(1);
observer.next(2);
observer.next(3);
observer.complete();
return { unsubscribe() { } };
}
}
Upvotes: 1