有没有任何方法可以提升单向消息,如工作者消息或WebSocket消息?
有没有什么办法可以提升单向消息,如Worker消息或WebSocket消息?有没有任何方法可以提升单向消息,如工作者消息或WebSocket消息?
我想在可能的情况下将套接字消息和工作者消息转换为承诺。有没有办法做到这一点? 如:
myWebWorker.postMessage(“someMessage”),那么()...
也许通过订阅某种类型的公交车,或通过使用观测量的?看起来Vue.js有这样的可用vue-worker的东西。 (https://alligator.io/vuejs/vue-workers/) 他们是怎么做到的?它仅适用于内联WebWorkers吗?如果我可以使用WebWorker,我想使用外部文件。我希望能够为服务器的套接字消息做同样的事情。例如:
socket.sendMessage( 'someMessage'),那么()...
任何想法?
使用promise构造函数来解析onmessage回调。
const sendMessage = (socket, message) => new Promise((resolve,reject) => {
const handleRes = (e) => {
resolve(e)
socket.removeEventListener('message', handleRes)
}
const handleRej = (e) => {
reject(e)
socket.removeEventListener('error', handleRej)
}
socket.addEventListener('message', handleRes)
socket.addEventListener('error', handleRej)
socket.send(message)
})
如果我有多个异步发送的传出消息,那么socket.onmessage是否可能会被发送出去的不同消息覆盖?然后不会这些消息不能正确处理? –
@JustinLevine然后使用socket.addEventListener – T4rk1n
所以你建议在每条消息上添加一个eventListener,或许将一个唯一的标识符作为一个事件。然后什么?它解决后销毁eventListener? –
你只需要包装的方法,在无极构造。 – T4rk1n