xCss / JsonBird

🐣A remote data interface proxy service | 一个远程数据接口代理服务
https://bird.ioliu.cn
MIT License
428 stars 73 forks source link

在vue项目中 获取的数据无法赋值 #20

Closed wangfpp closed 6 years ago

wangfpp commented 6 years ago

Vue项目中 使用Axios获取数据 通过this.data = response.data 赋值 得不到数据

wangfpp commented 6 years ago

数据能够打印 大师赋值就不行 不知道为什么

xCss commented 6 years ago

返回的数据结构呢?

wangfpp commented 6 years ago

@xCss 我是直接get的html 没有什么数据结构 我贴代码 image 这里是可以打印的 是由于Promise的原因吗

xCss commented 6 years ago

@wangfpp 异步的方法,你为何要用同步方法调用啊

wangfpp commented 6 years ago

@xCss 你的意思是我直接get就行不需要Promise? 我最这个同步 异步理解还不是很透彻 

xCss commented 6 years ago

不是不需要Promise,而是操作返回的数据需要在then里解决。用回调的方式:

mainServer.getOriginalNews('url').then(ret=>{
    //  数据都需要在这里操作
    // callback(res)

})
// 这外面是拿不到数据的
wangfpp commented 6 years ago

mainServer.getOriginalNews('url').then(ret=>{ // 数据都需要在这里操作 // callback(res)  //我在data里声明了html的一个变量 通过this.html = res.data赋值 }) 但是在外部就是获取不到 就是这里我不明白 其他的接口是可以获取到的

xCss commented 6 years ago

你在外面调用的时候,请求还没返回数据,所以就会出现无数据的情况

wangfpp commented 6 years ago

@xCss   是的打印的Promise是peding状态  可是气调用其他的接口在外部确实可以得到数据通过this.dataName 可以直接操作 第一次遇到这样的情况 所以想问问你 实在不行我就在回调内部处理数据了

xCss commented 6 years ago

这不是接口问题,而是你的逻辑问题。 网络慢的时候,你都会出现这个情况。 所以不管是用别的接口还是用我的代理你都要养成在内部处理数据的习惯,而不是在外面处理。

wangfpp commented 6 years ago

@xCss  哎呀我明白过来了,以前这样肯定也是不行的,是我钻牛角尖了,谢谢啊  你头像真好看