步骤二 · 2-3 幻灯片组件--从服务器端获取数据

来源:2-3 幻灯片组件--从服务器端获取数据

weixin_慕的地5241954

2019-10-26 20:26:57

methods: {
      update() {
        return this.getSliders();
      },
      getSliders() {
        // then方法直接用?它的实例对象是谁?
        return getHomeSlider().then(data => {
          this.sliders = data;
        });
      }
    }
return axios.get('http://www.imooc.com/api/home/slider', {
    timeout: TIMEOUT
  }).then(res => {
    if (res.data.code === SUCC_CODE) {
      let sliders = res.data.slider;
      const slider = [sliders[Math.floor(Math.random() * sliders.length)]];
      sliders = shuffle(sliders.filter(() => Math.random() >= 0.5));
      if (sliders.length === 0) {
        sliders = slider;
      }
      return sliders;
    }
    throw new Error('没有成功获取到数据!');
  }).catch(err => {
    if (err) {
      console.log(err);
    }

axios返回的是Promise对象,所以可以用then方法,那getHomeSlider()方法返回的应该是处理好的数据对象啊,怎么还有then方法,能结合代码说一下嘛啊?

写回答

1回答

好帮手慕星星

2019-10-27

同学你好,

getHomeSlider()方法返回的是带有数据的promise对象,可以输出测试下:

http://img.mukewang.com/climg/5db50d2c0938f1b504760029.jpg

http://img.mukewang.com/climg/5db50d09090fbb2809270331.jpgaxios返回的是Promise对象,虽然使用了then方法,但是axios外面还有一个return:

http://img.mukewang.com/climg/5db50d65092a3b6706800265.jpg

将这个对象返回了,里面的返回的sliders会作为对象中的数据,通过使用then方法输出即可。

自己可以输出测试下哦,祝学习愉快!

欢迎采纳~

0

0 学习 · 10739 问题

查看课程