请老师看看哪儿不对

请老师看看哪儿不对

为啥我的三张图片是一起显示的?

<!DOCTYPE html>

<html>

<head lang="en">

    <meta charset="UTF-8">

    <title>Document</title>

    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>

    <style type="text/css">

        img{width: 30%;}

    </style>

</head>

<body>

<script>

    //补充代码

    function getImg(url){

        $("body").append($(`<img src=${url} />`));

    }

    var x=new Promise(resolve=>{

        setTimeout(function(){

            getImg('http://img1.sycdn.imooc.com/climg//5b16558d00011ed506000338.jpg');

            resolve();

        },1000);

    });

    x.then(function(){

        getImg('http://img1.sycdn.imooc.com/climg//5b165603000146ca06000338.jpg');

        return x;

    })

    .then(function(){

        getImg('http://img1.sycdn.imooc.com/climg//5b1656140001c89906000338.jpg');

        

    });

</script>

</body>

</html>


正在回答

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

2回答

同学你好,x是一个promise对象,但就是因为用的是同一个promise对象,所以状态才会一样,导致同时显示:

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

所以不能使用同一个promise对象,一个图片调用一次函数new一个promise,就像老师第一次给同学改正的那样。

好帮手慕粉 2020-08-27 10:40:29

同学你好,应该隔一秒执行一次函数的。可以将promise放在函数里面:

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

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

  • 提问者 慕瓜6072901 #1
    老师我原来的代码为什么会一起显示,我的X变量不也是一个promise对象么?
    2020-08-27 10:50:56
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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