js中的MessageChannel是什么?

2018-11-24  本文已影响0人  Jerry379

Vue深入响应式原理中提到:Vue在内部尝试对异步队列使用原生的Promise.thenMessageChannel,如果执行环境不支持,会采用setTimeout(fn,0)代替。

那么MessageChannel是什么呢?又是如何使用的呢?

MessageChannel接口允许创建一个新的消息通道,并通过它的两个MessagePort属性发送数据。MessageChannel接口实例化以后,会有两个属性port1port2.

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

参考链接

上一篇 下一篇

猜你喜欢

热点阅读