问答详情
源自:1-2 设计通用帧动画库

同步和异步任务的区别

老师,任务链上的同步和异步任务的区别··哪些是异步任务?动画暂停是属于异步任务吗?

提问者:xiaotuan 2016-07-08 09:55

个回答

  • ustbhuangyi
    2016-07-08 14:11:56
    已采纳

    首先,要理解JS是单线程的。也就是说,在一次Event Loop中,会同步执行完所有JS代码。
    同步任务是在一次Event Loop中执行的JS代码,去完成相应的“任务”。
    异步任务不是一次Event Loop可以做完的,通常JS有几种方式实现异步,如异步ajax请求,setTimeout,requestAnimationFrame等。
    动画库这个案例中,我们引入了“任务链”这个概念,把一些同步异步的“任务”添加到任务链上。所有通过timeline创建的动画都是异步任务,因为它底层用到了requestAnimationFrame。
    动画暂停不是一个任务,它是调用了timeline的一个接口方法,达到暂停动画执行的目的。

  • xiaotuan
    2016-07-12 11:13:56

    好的  太感谢老师了