Wie bekomme ich mehrere Abonnenten warten das gleiche Versprechen zu lösen, wenn es bereits bei Nachzügler angesichts einer neuen Auflösung inflight ist?RxJs - Mehrere Abonnenten warten auf das gleiche Ergebnis eines Versprechens
doSomething =() => {
return new Promise((resolve) => {
setTimeout(() => resolve(Math.random(), 1000)
})
}
// how to define obs?
obs.subscribe(v => console.log(v)); // 0.39458743297857473
obs.subscribe(v => console.log(v)); // 0.39458743297857473
obs.subscribe(v => console.log(v)); // 0.39458743297857473
setTimeout(() => obs.subscribe(v => console.log(v)), 2000); // 0.9485769395265746
Ich möchte die beobachtbaren, bis der erste Teilnehmer kalt bleiben, dann kalt gehen wieder nach dem Ergebnis für alle nachfolgenden gleichzeitige Teilnehmer gestreamt wird. Ich möchte im Grunde keine gleichzeitige Anfragen an die gleiche zugrunde liegende Funktion.
Nizza Antwort, obwohl einige Links zu den docs wäre schön! –
Gut, ich habe einige Links zu den Dokumenten hinzugefügt. – olsn
Das funktioniert für das Beispiel, das ich gab, also habe ich akzeptiert. Vielen Dank für deine Hilfe. Ich habe das tatsächlich früher ausprobiert und es ist nicht für meinen tatsächlichen Anwendungsfall, im Gegensatz zu dem Beispiel, das ich gab, um Dinge zu vereinfachen. Ich sehe jetzt, warum es nicht funktioniert, es ist nicht wiedereintretend. Am Ende der Pipeline, die obs verwendet, gibt es einen Bibliothekscode, der subskribiert wird, und in seinem Block neNext erzeugte er eine Aktion, die ... Trommelwirbel ... auf obs verließ und so festgefahren war. Ich weiß nicht, wie ich immer mit diesen blutigen schrecklichen Randfällen enden werde! :-) – mysomic