ホームページ  >  に質問  >  本文

VueJS 続行する前に axios データを待つ方法

<p>データを変数に解析してポストリクエストを送信するコードがあります。 </p> <p>問題は、API からプロパティが必要ですが、それが返されるまで待つ方法がわからないことです。 </p> <pre class="brush:php;toolbar:false;">addFieldData(data,generatorData) { this.populateModel(データ); console.log(this.model); this.$axios.post('data/webform/fields', this.model) .then(res => { console.log(res); this.$notify({ グループ: 「アプリ」、 タイトル: this.$t("general.success"), テキスト: this.$t("general.action_has_been_processed"), タイプ: "情報" }); }).catch(error => { this.$notify({ グループ: 「アプリ」、 タイトル: this.$t("general.error"), テキスト: this.$t("general.error_occured"), タイプ: "エラー" }); コンソール.ログ(エラー); }); }、 PopulateModel(データ) { this.model.label = data.label ?? {}; this.model.hint = data.placeholder ?? {}; this.model.attributes = data.attributes ?? {}; this.model.maxlength = data.maxlength ?? 0; this.model.position = this.getFieldPosition(); this.model.required = data.required ?? true; this.model.visible = data.visible ?? true; this.model.disabled = data.disabled ?? false; 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 = データ.タイプ; }、 async getFieldPosition() { const res = await this.$axios.get('/data/webform/' this.idWebform '/itemsCount'); this.model.position = res.data.data.count 1; res.data.data.countを返します。 },</pre> <p>addFieldData では、populateModel を呼び出します。これは API から位置を取得する必要がありますが、getFieldPosition がデータを返す前に post リクエストを呼び出します。 </p> <p>まず getFieldPosition を待ってから POST リクエストを送信してみます。 </p>
P粉520204081P粉520204081419日前460

全員に返信(1)返信します

  • P粉178132828

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

    まず、.then を含めずに、すべての async/await を用意する必要があります。
    この 2 つを混同しないでください。最初のものを使用してください。

    次に、 async PopulateModel メソッドに

    を含める必要があります。 リーリー

    getFieldPosition は非同期であるためです。

    返事
    0
  • キャンセル返事