问答详情
源自:4-2 小男孩部分代码的封装

walkTo里面为什么要加return

 walkTo: function(time, proportionX, proportionY) {

            var distX = calculateDist('x', proportionX)

            var distY = calculateDist('y', proportionY)

            return walkRun(time, distX, distY);

        }

//-----------------------------------------------------------------

为什么要在walkRun(time, distX, distY);前面加return,但是如果不加的话就会出现Cannot read property 'then' of undefined的错误,但是如果不加的话,以我单纯的理解就是可以通过startRun方法里返回deferred,好像不需要在walkRun(time, distX, distY)前面加return,求大神讲解

提问者:洛洛 2017-12-03 14:43

个回答

  • 慕的地2446357
    2018-06-25 23:16:10

    这里要了解3个步骤

    var dtd = $.Deferred();  //创建
    dtd.resolve();          //成功
    dtd.then()              //执行回调

    =====以上代码中then()是通过dtd来执行的,同理

    boy.walkTo(2000, 0.2).then(function() {

              // 第一次走路完成

              boy.setColoer('red');

            })

    要在boy.walkTo()后面紧跟.then(),则boy.walkTo()必须返回$.Deferred()对应的变量

  • qq_粉忆天魔黑兔_0
    2017-12-10 20:36:13

    返回计算后的结果