我在下面的fetchData
中取消註釋「返回」時有以下代碼。我如何設置它,所以我等待this.fetchData
完成填充項目?我曾嘗試過其他的承諾,異步,待機的變種,但不能讓它真正工作...無法找到等待vue.js異步功能的方法
到目前爲止,我設置了this.items
內fetchData
但我意識到這絕對不是我想真正做了什麼。它向我展示了我的通話的前X行,因爲這樣設置,但所有在fetchData
通話之後發生的代碼都是竊聽,從嘗試執行items.length
開始。
import axios from 'axios';
new Vue({
el: '#app',
data() {
return {
search: '',
totalItems: 0,
items: [],
loading: true,
pagination: {},
headers: [ //some headers
],
items: []
}
},
watch: {
pagination: {
handler() {
this.getDataFromApi()
.then(data => {
this.items = data.items
this.totalItems = data.total
})
},
deep: true
}
},
mounted() {
this.getDataFromApi()
.then(data => {
this.items = data.items
this.totalItems = data.total
})
},
methods: {
fetchData() {
axios.get('/api/v1/translations').then(response => {
//console.log(response.data)
this.items = response.data.data
})
//the return below is working 100%:
//return [{id:1,key:1,lg:'en',text:'woopie'}];
},
getDataFromApi() {
this.loading = true
return new Promise((resolve, reject) => {
const { sortBy, descending, page, rowsPerPage } = this.pagination
let items = this.fetchData()
const total = items.length
//some code to setup pagination and sort
setTimeout(() => {
this.loading = false
resolve({
items,
total
})
}, 1000)
})
}
},
})
好吧,得到了原則,並得到它的工作!太感謝了! – Night
@Night:很高興幫助!我再看看你的問題,意識到我錯過了一個非常重要的句子,所以我已經更新了上面的答案。 HTH。問候, –