我遇到了这个错误,尽管在 MDN 和这里进行了大量研究,但还没有解决它。我正在尝试使用异步和等待,但 JavaScript 不会等待“等待”函数结束。这里是:
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
}
})
})
},
这是控制台日志的屏幕截图,其中 JavaScript 打印“3”。 (放置在await 调用之后)在“2.”之前:
我究竟做错了什么?已经尝试像这样修改等待:let foo = await this.loadtags()
并在 loadtags 函数末尾添加“return 0”,但对我不起作用。
您没有从以下位置返回任何内容loadtags
方法,因此代码不会等待。
改变这个:
loadtags () {
this.$axios
.get(...
To this:
loadtags () {
return this.$axios
.get(...
async/await
或多或少只是 Promise 的糖衣,所以返回 Promise 会给你在其他方法中等待的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)