vue作用域,无法取到methods方法中return的值(回调函数)
最初代码如下:<template><div></div></template><script>import {download} from '@/tmApi/proposer.js'export default {name: 'test',methods: {getData(...
·
最初代码如下:
<template>
<div></div>
</template>
<script>
import {download} from '@/tmApi/proposer.js'
export default {
name: 'test',
methods: {
getData(urlName) {
download({'name':urlName}).then(res=>{
if(res.data.status===0){
console.log(res.data.data.url)
return res.data.data.url;
}
})
},
},
mounted() {
this.getData('201807270930001721/201807270930001721res.pdf')
console.log(this.getData('201807270930001721/201807270930001721res.pdf'))
}
}
</script>
发现 console.log(this.getData(‘201807270930001721/201807270930001721res.pdf’))得到的是undefined
由于get是异步执行的,所以你也无法获取到请求返回的内容,要用回调的形式来获取:
<script>
import {download} from '@/tmApi/proposer.js'
export default {
name: 'test',
methods: {
getData(urlName,callback) {
download({'name':urlName}).then(res=>{
if(res.data.status===0){
console.log(res.data.data.url)
callback(res.data.data.url)
}
})
},
},
mounted() {
this.getData('201807270930001721/201807270930001721res.pdf',function(data) {
console.log(data)
})
}
}
</script>
ok,这样就能取到了
更多推荐
已为社区贡献1条内容
所有评论(0)