可以从连接获取数据,但是使用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>
2回答
同学你好,问题如下:
1、在home.js中少些了一个return,可以参考下方修改:

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

3、处理代码如下:

要把内容返回出去,所以要使用return
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
ChangeH
提问者
2020-03-23
找到错误的原因了,home.js中jsonp前面要加return。
可是还是不明白,不加return为什么不返回新创建的Promise:
new Promise((resolve,reject)=>{
resolve('success');
reject('false');
});相似问题