Ich habe über Observables
gelesen. Eine Sache, über die ich gelesen habe, ist ihre Fähigkeit, wie ein Strom zu hören. Ich habe das mit dem folgenden Code versucht.Zu versprechen, wie ein Strom
const Rx = require('rxjs/Rx');
Promise = require('bluebird');
let i = 0;
function calculate() {
return new Promise((resolve, reject) => {
setInterval(() => {
console.log(++i);
resolve(i);
}, 5000);
})
}
let source = Rx.Observable.fromPromise(calculate());
source.subscribe(
next => {
console.log(next, ' next ');
},
err => {
console.error(err)
},
() => {
console.log('done!');
}
)
Aber es hat nicht wie ein Stream funktioniert. So sieht die Ausgabe etwa so aus:
1
1 ' next '
done!
2
3
Wie höre ich weiter auf das Versprechen? Ist das Problem Observable wirklich zu lösen?
Versprechen kann nur einmal aufgelöst/abgelehnt werden, also nicht sicher, was Sie erwarten würden, wenn Sie ein Versprechen mehrmals lösen. Wenn Sie in bestimmten Intervallen weiterhin Ereignisse erzeugen möchten, können Sie 'Rx.Observable.interval' verwenden. –
@arturgrzesiak Könnten Sie bitte ein Beispiel in einer Antwort posten –
@SuhailGupta was ist der Anwendungsfall, den Sie lösen möchten? – mickaelw