简述Vue双向数据绑定的原理
主要是通过Object对象的defineProperty属性,重写data的set和get函数来实现的 vue是通过数据劫持的方式来做数据绑定,最核心的方法就是通过Object.defineProperty()来实现对属性的劫持 在设置或者获取的时候我们就可以在get或者set方法里加入其他的触发函数,达到监听数据变动的目的
promise 原理
promise的核心原理其实就是发布订阅模式,通过两个队列来缓存成功的回调(onResolve)和失败的回调(onReject)。
解决回调地狱
promise的特点:
new Promise时需要传递一个executor执行器,执行器会立刻执行
执行器中传递了两个参数:resolve成功的函数、reject失败的函数,
他们调用时可以接受任何值的参数valuepromise状态只能从pending态转onfulfilled,
onrejected到resolved或者rejected,然后执行相应缓存队列中的任务promise实例,
每个实例都有一个then方法,这个方法传递两个参数,一个是成功回调onfulfilled,另一个是失败回调onrejected
promise实例调用then时,如果状态resolved,会让onfulfilled执行并且把成功的内容当作参数传递到函数中
promise中可以同一个实例then多次,如果状态是pengding 需要将函数存放起来 等待状态确定后 在依次将对应的函数执行 (发布订阅)