有没有办法宣传单方面消息,例如工作者消息或WebSocket消息?
如果可能,我想将套接字消息和工作消息转换为Promises。有没有办法做到这一点? 如:
myWebWorker.postMessage( 'someMessage')。然后()...
也许通过订阅某种类型的公共汽车,或通过使用Observables?似乎Vue.js使用vue-worker可以得到这样的东西。 (https://alligator.io/vuejs/vue-workers/) 他们是如何做到的呢?它仅适用于内联WebWorkers吗?如果我可以使用WebWorker,我想使用外部文件。我希望能够对来自服务器的套接字消息做同样的事情。例如:
socket.sendMessage( 'someMessage')。然后()...
任何想法?
答案 0 :(得分:0)
使用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)
})