Maison  >  Questions et réponses  >  le corps du texte

Comment renvoyer les données de la réponse Promise

<p>Comment renvoyer correctement les données de Promise ? J'ai le code suivant : </p> <pre class="brush:php;toolbar:false;">const axios = require("axios").default; fonction asynchrone getApiData(pathName : string, locale : string) { const {axiosRequestUrl} = getApiVars(pathName, locale); const axiosClient = axios.create({ URL de base : process.env.CONTENT_DOMAIN, proxy : faux }) return wait axiosClient.get(axiosRequestUrl); } exporter la fonction par défaut getPageData() { getApiData('content-partagé', 'en-us') .then((données) => { renvoyer des données ; }) .catch((erreur : toute) => { // enregistre l'erreur ici }) }</pré> <p>Cependant, si j'essaie d'utiliser getPageData depuis le composant, je me retrouve avec une fonction void qui ne renvoie rien, pourquoi ? Qu'est-ce que j'oublie ici? </p>
P粉988025835P粉988025835471 Il y a quelques jours433

répondre à tous(1)je répondrai

  • P粉426906369

    P粉4269063692023-07-29 00:59:48

    À tout le moins, votre fonction getPageData elle-même doit être une fonction asynchrone (pour plus de clarté dans la lisibilité du code) qui renverra la promesse renvoyée par l'appel getApiData.

    Par exemple :


    export default async function getPageData() {
        return getApiData('shared-content', 'en-us');
    }

    Deux autres conseils :

    Vous devez résoudre cette promesse pour lire les données.

    Vous pouvez décider d'effectuer la gestion des erreurs ici ou plus haut dans la hiérarchie des appels

    Règle générale :

    une fonction asynchrone est simplement une fonction qui renvoie un objet Promise.

    Les données réelles ne seront renvoyées que lorsque la promesse sera résolue (en utilisant wait ou .then())

    répondre
    0
  • Annulerrépondre