为了账号安全,请及时绑定邮箱和手机立即绑定

两个_animate()分别有啥作用 求语法解答

两个_animate()分别有啥作用 求语法解答 

正在回答

1 回答

来看下面这段代码:

var Promise = window.Promise
  function promiseAnimate(ball,distance){
    return new Promise(function(resolve,reject){
      function _animate(){
        setTimeout(function(){
          var marginLeft = parseInt(ball.style.marginLeft,10)
          if(marginLeft === distance){
            resolve()
          }else{
            if(marginLeft < distance){
              marginLeft++
            }else{
              marginLeft--
            }
            ball.style.marginLeft = marginLeft + 'px'
            _animate()
          }

        },13)
      }
      _animate()
    })
  }

第4行到第20行是在给Promise构造函数传递的匿名函数(这里命名为callback)内部定义的一个私有函数_animate(),这是一个递归函数,递归的目的是执行动画,_animate()函数内部使用setTimeout()函数每隔13毫秒做出判断和改变并调用一次自己,而在_animate()函数定义外部在callback()函数内部调用_animate()是为了出发第一次动画执行,如果还不懂的话可以看一下简化之后的代码:

  function promiseAnimate(ball,distance){
    return new Promise(function(resolve,reject){
      function _animate(){
        setTimeout(function(){
          ...//判断和改变
          _animate()

        },13)//递归执行
      }
      _animate()//首次触发
    })
  }


3 回复 有任何疑惑可以回复我~
#1

慕瓜3177915 提问者

这个理解了 谢谢 我可不可以理解 这个动画过程是 执行promiseAnimate()这个函数,然后 在这个函数里返回一个promise的对象,再之后promise这个对象里有_animate()方法,然后触发。对不对? 还有resolve,reject这俩参数在这有什么用 不懂
2016-12-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
进击Node.js基础(二)
  • 参与学习       76754    人
  • 解答问题       226    个

本教程带你攻破 Nodejs,让 JavaScript流畅运行在服务器端

进入课程

两个_animate()分别有啥作用 求语法解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信