老师,为什么不需要return re;,只要 return f(srcs[1]);就能返回实例对象?

老师,为什么不需要return re;,只要 return f(srcs[1]);就能返回实例对象?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

<script>

    //补充代码

    var srcs=['http://img1.sycdn.imooc.com/climg//5b16558d00011ed506000338.jpg','http://img1.sycdn.imooc.com/climg//5b165603000146ca06000338.jpg ','http://img1.sycdn.imooc.com/climg//5b1656140001c89906000338.jpg '];

    function f(u){

        return new Promise(function (resolve){

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

            img.src=u;

            var re;

            setTimeout(function (){

            re=resolve(img);

                // resolve(img);

            },1000);

            return re;

        });

    }

    f(srcs[0]).then(function (img){

        document.body.appendChild(img);

        return f(srcs[1]);

    }).then(function (img){

        document.body.appendChild(img);

        return f(srcs[2]);

    }).then(function (img){

        document.body.appendChild(img); 

    });

</script>

</body>

</html>


正在回答

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

2回答

同学你好,调用的f(),所以是f()的返回值,是如下部分,例:

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

祝学习愉快~

好帮手慕糖 2020-03-24 14:22:00

同学你好,因为调用f()这个函数,返回的值整个Promise实例,执行这个实例,继续调用后面的then即可,不需要里面的返回值哦。

祝学习愉快~

  • 提问者 慕尼黑5122342 #1
    return f(srcs[1]);返回的实例不是在setTimeout的匿名函数中吗? return f(srcs[1]);是不是直接就跳出了then方法,然后将实例给下一个then方法?
    2020-03-24 17:31:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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