cari

Rumah  >  Soal Jawab  >  teks badan

VueJS cara menunggu data axios sebelum meneruskan

<p>Saya mempunyai kod ini yang sepatutnya menghuraikan data kepada pembolehubah dan kemudian menghantar permintaan siaran. </p> <p>Masalahnya ialah, saya memerlukan harta daripada API tetapi saya tidak tahu bagaimana untuk menunggu ia kembali. </p> <pre class="brush:php;toolbar:false;">addFieldData(data, generatorData) { this.populateModel(data); console.log(this.model); this.$axios.post('data/webform/fields', this.model) .then(res => { console.log(res); ini.$notify({ kumpulan: "app", tajuk: ini.$t("general.success"), teks: ini.$t("umum.tindakan_telah_diproses"), jenis: "info" }); }).tangkap(ralat => { ini.$notify({ kumpulan: "app", tajuk: ini.$t("error.error"), teks: ini.$t("error.error_ocured"), jenis: "ralat" }); console.log(error); }); }, populateModel(data) { 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?? 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 = tunggu ini.$axios.get('/data/webform/' + this.idWebform + '/itemsCount'); this.model.position = res.data.data.count + 1; kembalikan res.data.data.count; },</pre> <p>Dalam addFieldData, saya memanggil populateModel, yang sepatutnya mendapat kedudukan daripada API, tetapi panggil permintaan siaran sebelum getFieldPosition mengembalikan data. </p> <p>Saya mahu cuba menunggu getFieldPosition dahulu dan kemudian menghantar permintaan siaran. </p>
P粉520204081P粉520204081495 hari yang lalu507

membalas semua(1)saya akan balas

  • P粉178132828

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

    Pertama sekali, anda sepatutnya mempunyai async/await 的所有内容,而无需任何 .then.
    Jangan campur kedua-duanya. Gunakan yang pertama.

    Kemudian, dalam kaedah async populateModel anda, anda sepatutnya mempunyai

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

    Kerana getFieldPosition adalah tak segerak.

    balas
    0
  • Batalbalas