Vue
深入响应式原理中提到:Vue
在内部尝试对异步队列使用原生的Promise.then
和MessageChannel
,如果执行环境不支持,会采用setTimeout(fn,0)
代替。
那么MessageChannel
是什么呢?又是如何使用的呢?
MessageChannel
接口允许创建一个新的消息通道,并通过它的两个MessagePort
属性发送数据。MessageChannel接口实例化以后,会有两个属性port1
和port2
.
var channel = new MessageChannel();
var port1 = channel.port1;
var port2 = channel.port2;
port1.onmessage = function (event) {
console.log("port2对port1说:"+event.data);
}
port2.onmessage = function (event) {
console.log("port1对port2说:"+event.data);
}
port1.postMessage("Hello");
port2.postMessage("Hi");
网友评论