Leo*_*ada 5 javascript asynchronous async-await vue.js quasar
我有此错误,尽管在MDN和此处进行了大量研究,但仍未解决。正如标题所说,我正在尝试使用async和await,但是js并没有等待'await'函数结束。这里是:
methods: {
async search (terms, done) {
console.log('1.')
this.filter = this.$refs.chipsInput.input
await this.loadtags()
console.log('3.')
done(this.tagsList)
},
loadtags () {
this.$axios
.get('/api/tags/?id__icontains=&id=&name__icontains=' + this.filter + '&name=&ordering=name&page_size=20')
.then(response => {
console.log('2.', response.data.results)
let temp = response.data.results
this.tagsList = temp.map(obj => {
return {
name: obj.name,
label: obj.name,
value: obj.name,
idField: obj.id
}
})
})
},
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?已经尝试过这样修改await:让foo = await this.loadtags()并在loadtags函数的末尾包含一个“ return 0”,但对我不起作用。可能是愚蠢的事情,对不起。
您不会从该loadtags
方法返回任何内容,因此代码不会等待。
更改此:
loadtags () {
this.$axios
.get(...
Run Code Online (Sandbox Code Playgroud)
对此:
loadtags () {
return this.$axios
.get(...
Run Code Online (Sandbox Code Playgroud)
async/await
在Promises上或多或少只是糖,所以返回Promise可让您用其他方法等待。