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");








网友评论