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,求大神讲解
这里要了解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()对应的变量
返回计算后的结果