可以从连接获取数据,但是使用promise无法将数据传到recommend.vue

来源:4-2 热卖推荐--从服务器端获取数据

ChangeH

2020-03-22 22:30:00

//home.js中的文件
import jsonp from "../assets/js/jsonp";
export const getHomeRecommend = (page=1,psize=20)=>{
  const url = 'https://ju.taobao.com/json/tg/ajaxGetItemsV2.json';
  const params={
    page,
    psize,
    type:0,
    frontcatId:''
  };
  jsonp(url,params,{param:'callback',timeout: 1000}).then(res => {
    console.log(res);
    if (res.code === '200') {
      return new Promise((resolve,reject)=>{
        resolve('success');
        reject('false');
      });
    }
  });
};


//recommend.vue中的文件
<template>
    <div>{{totalPage}}</div>
</template>

<script>
  import {getHomeRecommend} from '../../api/home';
  export default {
    name: "recommend",
    data(){
      return{
        recommends:[],
        curPage:1,
        totalPage:1
      };
    },
    created(){
      this.getRecommend();
    },
    methods:{
      getRecommend(){
        getHomeRecommend(this.curPage).then(data => {
          if(data){
            this.curPage++;
            this.totalPage=data.totalPage;
            this.recommends=this.recommends.concat(data.itemList);
          }
        });
      }
    }
  };
</script>

<style scoped>

</style>

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

写回答

2回答

好帮手慕言

2020-03-23

同学你好,问题如下:

1、在home.js中少些了一个return,可以参考下方修改:

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

2、视频中返回了数据,如下:

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

3、处理代码如下:

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

要把内容返回出去,所以要使用return

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0

ChangeH

提问者

2020-03-23

找到错误的原因了,home.js中jsonp前面要加return。

可是还是不明白,不加return为什么不返回新创建的Promise:

new Promise((resolve,reject)=>{
  resolve('success');
  reject('false');
});


0
hhangeH
h 找到错误的原因了,home.js中jsonp前面要加return。 可是还是不明白,不加return为什么不返回新创建的Promise:
h020-03-23
共1条回复

0 学习 · 10739 问题

查看课程