VueJS 계속하기 전에 axios 데이터를 기다리는 방법
P粉520204081
2023-08-26 10:34:00
<p>데이터를 변수로 구문 분석한 다음 게시 요청을 보내는 코드가 있습니다. </p>
<p>문제는 API의 속성이 필요하지만 해당 속성이 반환될 때까지 기다리는 방법을 모른다는 것입니다. </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);
this.$알림({
그룹: "앱",
제목: this.$t("general.success"),
텍스트: this.$t("general.action_has_been_processed"),
유형: "정보"
});
}).catch(오류 => {
this.$알림({
그룹: "앱",
제목: this.$t("general.error"),
텍스트: this.$t("general.error_occured"),
유형: "오류"
});
console.log(오류);
});
},
populateModel(데이터) {
this.model.label = 데이터.라벨 {};
this.model.hint = data.placeholder ??
this.model.attributes = data.attributes ?? {};
this.model.maxlength = 데이터.maxlength ?? 0;
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 = 데이터.모델 "";;
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 = 데이터.유형;
},
비동기 getFieldPosition() {
const res = wait 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이 데이터를 반환하기 전에 게시 요청을 호출합니다. </p>
<p>먼저 getFieldPosition을 기다린 다음 게시물 요청을 보내려고 합니다. </p>
먼저
async/await
的所有内容,而无需任何.then
가 있어야 합니다.두 가지를 섞지 마십시오. 첫 번째 것을 사용하십시오.
그런 다음
가 있어야 합니다. 으아악async populateModel
메소드에getFieldPosition
은 비동기식이기 때문입니다.