我在下面的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。问候, –