为什么报错说resolve没有定义

为什么报错说resolve没有定义

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

<script>

    //补充代码

    const img=document.createElement('img');

    

    var a=new Promise(function(resolve){

        setTimeout(function(){

            return resolve(img.src='http://img1.sycdn.imooc.com/climg//5b16558d00011ed506000338.jpg');

        },1000)

    }).then(function(){

        return resolve(img.src='http://img1.sycdn.imooc.com/climg//5b165603000146ca06000338.jpg');

    }).then(function(){

        return resolve(img.src='http://img1.sycdn.imooc.com/climg//5b1656140001c89906000338.jpg ');

    })

</script>

</body>

</html>


正在回答 回答被采纳积分+1

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

2回答
好帮手慕糖 2020-12-04 10:02:13

同学你好,如下图,同学的resolve参数是在Promise中的,所以在Promise中使用是不会报错的。但是下面then方法中也使用了resolve,而then方法中并没有该参数,且无法直接只用Promise中参数,所以才会报错的哦。


http://img1.sycdn.imooc.com//climg/5fc99828099185f409440479.jpg


修改建议可以参考上一个老师的回答中,封装一个函数进行操作哦。

祝学习愉快~

  • 提问者 Ting111 #1

    .then里面是只能return一个函数吗。不能返回别的东西?我不写这个函数能实现效果吗

    2020-12-07 19:54:21
  • 好帮手慕糖 回复 提问者 Ting111 #2

    同学你好,关于你的问题,回答如下:

    1、then方法中不是必须返回函数,可以返回其他内容。

    2、但是在当前这个代码中准确的说是,调用了resolve这个函数,将结果返回了。这里是必要要调用这个函数的哦。

    祝学习愉快~

    2020-12-08 10:09:47
好帮手慕星星 2020-12-03 10:21:42

同学你好,then方法中没有resolve参数,使用会报错

http://img1.sycdn.imooc.com//climg/5fc849ff09913ee604560259.jpg

另外resolve方法中传参就可以,给img赋值比较麻烦;创建img图片之后,还需要追加到页面中,否则只是创建在内存中,页面无法显示。

建议封装一个函数,里面进行创建图片,添加图片的操作,调用函数只传入图片地址即可,参考:

http://img1.sycdn.imooc.com//climg/5fc84ba10919b15409660570.jpg

祝学习愉快!

  • 提问者 Ting111 #1

    哪里没有resolve参数了?我不是写了resolve吗

    2020-12-03 20:18:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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