web-dev-qa-db-fra.com

Utilisation d'Async en attente dans le composant React

J'ai donc créé un composant qui tire les demandes de publication avec des accessoires que je fournis.

Bien que je connaisse Async, j'attends pour une raison quelconque que je ne puisse pas obtenir cela pour retourner la valeur réelle de la promesse remplie et au lieu de cela, juste en attente.

J'ai essayé d'encapsuler avec plus de fonctions car je comprends que la promesse n'est pas résolue.

J'ai l'impression de manquer quelque chose.

Un exemple de mon code ci-dessous

export default class PostController extends React.Component {
constructor(props) {
    super(props)
}
Wrapper = (body) => {
    try{
        let x = this.Send(body);
        return x;
        console.log(x)
    }catch(e){console.log(e)}
}
Send = async (body) => {
        try{
            let data = await this.Post(body);
            return data;
        }catch(e){console.warn(e)}       
}
Post = async (body) => {
    try{
        const options = {
            method: 'POST',
            uri: 'XXXXXXXXXXXXXXXXXXXX',
            body: body
        }
        const data = await rp(options);
        return data; 
    }catch(e){console.warn(e)}
}
render(props) {
    let jsonBody = JSON.stringify(this.props.data)
    const returnData = this.Wrapper(jsonBody)
    console.log(returnData)

        return(
            <div>
                 {(!this.props.data.pw) ? 'Retrieved Password: ' + returnData.message : 'Generated PassWord!:' + returnData.message }
            </div>
        )
    }

}

4
Scottt

Je crois que vous devriez essayer de marquer la fonction Wrapper comme async et l'attendre avant de consigner la console returnData. Attendez également sur Send () dans Wrapper.

0
Shrijit Pandey