promise的前世来生
问题 什么是单线程,和异步什么关系 什么是event-loop 是否用过jquery中的deferred Promise的基本使用和原理 介绍async/await(和Promise的联系和区别)――不是取代,而是补充 介绍一下异步解决方案 单线程和异步 单线程,同一时间只能做一件事,可以避免DOM渲染冲突。 浏览器需要渲染DOM,JS可以修改DOM结构,所以JS执行的时候,浏览器DOM渲染会暂停,且两端JS也不能同时执行。 虽然webworker支持多线程,但是不能访问DOM。 解决方案是异步。但异步存在问题。 不按照书写方式执行,可读性差 回调函数不容易模块化。 事件循环 同步代码,直接执行。异步函数完成先放在异步队列中。待同步函数执行完毕,轮询执行异步队列的函数。 jQuery的Deferred jquery1.5的变化 var ajax = $ . ajax ( { url : 'data.json' , success : function ( ) { console . log ( 'success1' ) ; console . log ( 'success2' ) ; } , error : function ( ) { console . log ( 'error' ) ; } } ) var ajax = $ . ajax ( 'data.json' ) ;