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

VueJS comment attendre les données axios avant de continuer

<p>J'ai ce code qui est censé analyser les données en variables, puis envoyer une demande de publication. </p> <p>Le problème est que j'ai besoin d'une propriété de l'API mais je ne sais pas comment attendre son retour. </p> <pre class="brush:php;toolbar:false;">addFieldData(data, generatorData) { this.populateModel(données); console.log(ce.modèle); this.$axios.post('data/webform/fields', this.model) .then(res => { console.log(res); ceci.$notifier({ groupe : "application", titre : this.$t("succès.général"), texte : this.$t("general.action_has_been_processed"), tapez : "infos" }); }).catch(erreur => { ceci.$notifier({ groupe : "app", titre : this.$t("erreur.générale"), texte : this.$t("general.error_occured"), tapez : "erreur" }); console.log(erreur); }); }, populateModel (données) { this.model.label = data.label ?? {}; this.model.hint = data.placeholder ?? this.model.attributes = data.attributes ?? {}; this.model.maxlength = data.maxlength ?? this.model.position = this.getFieldPosition(); this.model.required = data.required ?? this.model.visible = data.visible ?? this.model.disabled = data.disabled ?? this.model.style_classes = data.style_classes ?? this.model.model = data.model ?? this.model.default = data.default ?? this.model.input_type = data.input_type ?? this.model.hint = data.hint ?? this.model.help = data.help ?? this.model.type = data.type; }, async getFieldPosition() { const res = wait this.$axios.get('/data/webform/' + this.idWebform + '/itemsCount'); this.model.position = res.data.data.count + 1 ; renvoyer res.data.data.count ; },</pré> <p>Dans addFieldData, j'appelle populateModel, qui devrait obtenir la position de l'API, mais j'appelle la demande de publication avant que getFieldPosition ne renvoie les données. </p> <p>Je souhaite d'abord essayer d'attendre getFieldPosition, puis d'envoyer une demande de publication. </p>
P粉520204081P粉520204081442 Il y a quelques jours484

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

  • P粉178132828

    P粉1781328282023-08-27 09:53:30

    Tout d’abord, vous auriez dû async/await 的所有内容,而无需任何 .then.
    Ne mélangez pas les deux. Utilisez le premier.

    Ensuite, dans votre méthode async populateModel, vous devriez avoir un

    this.model.position = await this.getFieldPosition()
    

    Parce que getFieldPosition est asynchrone.

    répondre
    0
  • Annulerrépondre