Charger des données distantes dans $mol n'est pas une API spéciale — une valeur asynchrone n'est qu'une propriété réactive écrite comme si la réponse était déjà là. La vue l'attend, affiche un état de chargement et se re-rend quand les données arrivent.
Appelez le réseau à l'intérieur d'un @ $mol_mem et renvoyez le résultat analysé. Il n'y a dans le code ni promesse, ni await, ni callback :1namespace $.$${2export class $my_usersextends$.$my_users{3@ $mol_mem4users(){5return this.$.$mol_fetch.json('https://api.example.com/users')as{6id:number7name:string8}[]9}10}11}$mol_fetch suspend la fibre jusqu'à l'arrivée de la réponse, puis le calcul repart et users() renvoie le tableau. Pendant qu'elle est en attente, toute vue qui lit users() affiche automatiquement l'état de chargement intégré — vous n'écrivez aucun drapeau isLoading. Ne renvoyez pas vous-même une promesse depuis un @ $mol_mem : une promesse stockée comme valeur garde la cellule en chargement pour toujours, voyez Dépannage.this.$ est le contexte du composant. Chaque service passe par lui : $mol_fetch pour le réseau, $mol_state_arg pour l'URL, $mol_after_timeout pour le temps. Dans un test, le contexte est remplacé, si bien que le même users() envoie sa requête à une simulation au lieu du réseau, sans qu'une seule ligne du composant change. Tests montre cette simulation.
Liez les données résolues directement dans une liste :1@ $mol_mem2user_names(){3return this.users().map(user=>user.name)4}Quand la réponse arrive, users() se met à jour, user_names() se recalcule et la liste s'affiche. Pas de callbacks, pas de useEffect.
Comme ce n'est qu'une cellule réactive, vous rechargez en l'invalidant. Dépendez d'un jeton que vous pouvez incrémenter :1@ $mol_mem2reload_token(next?:number){3return next??04}56@ $mol_mem7users(){8this.reload_token()// subscribe9return this.$.$mol_fetch.json('https://api.example.com/users')asunknown[]10}1112@ $mol_action13reload(){14this.reload_token(this.reload_token()+1)15}Modifier cette page sur GitHubÉtait-ce utile ?OuiNonPrécédentDépannageSuivantSchémas de donnéesSur cette pageUne propriété asynchroneRendre le résultatRechargerErreursSuiteType to search the documentation.