老师这段代码报错了,蓝色区域promise

正在回答

登陆购买课程后可参与讨论,去登陆

5回答

同学你好,可以查看私信,老师在私信中帮助同学解决,祝学习愉快~

  • RahodJoe 提问者 #1
    老师私信你了,还是不信哦
    2020-05-15 19:15:57
提问者 RahodJoe 2020-05-15 17:25:58

http://img1.sycdn.imooc.com//climg/5ebe600409d4ac5519170816.jpgnpm babel runtime corejs之后的报错如下

好帮手慕言 2020-05-15 16:55:24

同学你好,可能是缺少依赖,可以运行下方的命令后再测试下。

npm install -S @babel/runtime-corejs2

另外:npm i是npm install的缩写形式,两者的作用是一样的。

如果在安装插件时加--save会将插件记录在package.json文件中,那么删除node_modules文件夹之后,运行npm i时,会根据package.json文件再次安装依赖。

如果按照上方操作完之后,还是报错,建议:把home.js中的代码粘贴上来(不要截图),还有把使用getHomeSlider方法的文件代码也粘贴上来(不要截图)

祝学习愉快~

  • 提问者 RahodJoe #1
    老师 npm了这个,然后用了第二个then 还是报错 给你看截图,代码也先给你 home.js是下面 import axios from 'axios'; import {SUCC_CODE, TIMEOUT} from './config'; // 获取幻灯片数据 -- ajax export const getHomeSlider = () => { return axios.get('https://www.imooc.com/api/home/slider', { timeout: TIMEOUT }).then(res => { if (res.data.code === SUCC_CODE) { return res.data.slider; } throw new Error('没有成功获取到数据!'); }).catch(err => { if (err) { console.log(err); } return [ { linkUrl: 'https://www.imooc.com', picUrl: require('assets/img/404.png') } ]; }).then(data => { return new Promise(resolve => { setTimeout(() => { resolve(data); }, 1000); }); }); };
    2020-05-15 17:25:04
  • 提问者 RahodJoe #2
    <template> <div class="swiper-wrapper"> <me-loading v-if="!sliders.length"></me-loading> <me-slider :direction="direction" :loop="loop" :interval="interval" :pagination="pagination" v-else> <swiper-slide v-for="(item, index) in sliders" :key="index"> <a :href="item.linkUrl" class="slider-link"> <img :src="item.picUrl" alt="" class="slider-img"> </a> </swiper-slide> </me-slider> </div> </template> <script> import MeSlider from 'base/slider'; import {swiperSlide} from 'vue-awesome-swiper'; import {sliderOptions} from './config'; import {getHomeSlider} from 'api/home'; import MeLoading from 'base/loading'; export default { name: 'HomeSlider', components: { MeSlider, swiperSlide, MeLoading }, data() { return { direction: sliderOptions.direction, loop: sliderOptions.loop, interval: sliderOptions.interval, pagination: sliderOptions.pagination, sliders: [] }; }, created() { this.getSlider(); }, methods: { getSlider() { getHomeSlider().then(data => { this.sliders = data; }); } } }; </script> <style lang="scss" scoped> .swiper-wrapper { height: 183px; } .slider-link { display: block; } .slider-link, .slider-img { width: 100%; height: 100%; } </style> 这是home下面的slider.vue使用了getHomeSlide方法
    2020-05-15 17:27:44
提问者 RahodJoe 2020-05-15 15:50:58

http://img1.sycdn.imooc.com//climg/5ebe49950956b92b14090905.jpg就是把这里注释了就是对的,和Alex一样 模拟获取服务区端获取数据花费一秒钟时长这个new promise就是报错上面截图,老师,这四五个评论回复,您应该很清楚了吧?

好帮手慕言 2020-05-15 13:40:39

同学你好,建议:把项目中的node_modules文件夹删除,在项目中运行npm i重新安装依赖。

如果还是不可以的话,建议:把home.js中的代码粘贴上来,并把命令行的报错也截图上来。

祝学习愉快~

  • 提问者 RahodJoe #1
    老师 home.js全部代码都在上面了,就是把第二个then的new promise去掉 就没错了 幻灯片也能出来 ,就是马上获取 没有一秒钟延迟,就是catch 了第一个then的抛出错误后加了第二个这个then()才有的报错,报错也是截图中的那样,主要报错的意思就是这样吧:Module not found: Error: Can't resolve 'babel-runtime/core-js/promise'
    2020-05-15 15:16:29
  • 提问者 RahodJoe #2
    就是右边代码蓝色那块 代码,第二个.then()去掉的话,是没错的,项目正常运转的
    2020-05-15 15:17:10
  • 提问者 RahodJoe #3
    还有,项目写到这里了,老师你说把node_modules删除,再npm i ,那不会更是报错很多?因为项目从刚开始npm init webpack再 npm install到现在已经npm xxx过很多东西 了比如sass loader(这里还是用的旧版本6.0.7,不是最新的) ,swiper等一堆在代码已经import过的东西 ,你现在说把modules包给删除再从新npm i一个新的modules包,那不缺了很多东西 更难解决问题了吗?还是说npm i与npm install有区别,能识别代码import的 自动下载回来?不然你这么说,我是不明白的,怎么解释呢?
    2020-05-15 15:25:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师