Я использую веб-работника с vuejs для выполнения некоторых сложных вычислений. У меня есть два способа уволить работников.
- In beforeDestroy lifestyle
export default {
beforeDestroy() {
this.worker && this.worker.terminate()
},
watch: {
data(data) {
if (!this.worker) {
this.worker = new Worker('worker_url')
this.worker.addEventListener('message', () => {
// do something
})
}
this.worker.postMessage(data)
}
}
}
После получения сообщения
export default {
watch: {
data(data) {
const worker = new Worker('url')
worker.addEventListener('message', () => {
// do something
worker.terminate()
})
worker.postMessage(data)
}
}
}
И, в этом примере, работник создает поток и продолжает до вызова метода terminate
.
Я хочу знать, какой метод лучше и почему.
Спасибо.