0
votes

Puis-je toujours compter sur le tuyau (prendre (1)). S'abonner () pour exécuter de manière synchrone?

J'essaie d'obtenir l'état le plus récent d'un observable synchroniquement. Selon Ce document de migration pour ngrx / store 2.0 Vous pouvez toujours compter sur l'abonnement () fonctionnant de manière synchrone si vous devez obtenir la valeur de l'état .

Je ne trouve aucune documentation actuelle qui le supporte. Cela reste-t-il toujours pour les versions actuelles du magasin (par exemple 7.4.0)?

code d'échantillon: xxx


0 commentaires

3 Réponses :


1
votes

Un observable aura toujours l'état le plus récent (sauf construit autrement).

et synchrones signifie que vous n'utilisez pas de rappel. P>

avec cet étant dit, vous pouvez simplement utiliser P>

async myFunc() {
  lastValue = await myObs$.fromPromise();
}


0 commentaires

4
votes

Essayez ceci:

    method(someId: string): string {
        let value: string;
        this.service.getSomeValue$(someId).pipe(take(1)).subscribe(s =>
        value = s;
  return value;});

    }


0 commentaires

1
votes

Si vous devez savoir si un code est synchronisé sans plonger au fond du code source, vous pouvez le tester.

Définir un code asynchrone (comme Settimeout ou Promise (première exécution sur la macro file d'attente, seconde sur la file d'attente Micro)), puis le code que vous souhaitez tester, puis certains synchrones code. Le résultat devrait être:

  • le code que vous testez
  • Code synchrone
  • Code asynchrone

    Si le résultat est comme ça, le code est synchrone.


0 commentaires