假设我有一个耗时的Web API,浏览器会调用它并等待超过1分钟的响应。我不希望HTTP连接保持很长时间。
我目前的想法:
还有更多标准/有效的方法吗? (例如websockets,async / await等?)
答案 0 :(得分:0)
您可以使用Worker
执行任务,postMessage()
在任务完成时将数据发布到主线程。
主线程
const worker = new Worker("worker.js");
worker.addEventListener("message", function(event) {
// check data
// do stuff with data from `Worker`
if (event.data === /* expected value */) {
} else {
// handle error
}
});
worker.postMessage("perform task");
Worker
self.addEventListener("message", function(event) {
if (event.data === "perform task") {
fetch("/path/to/server")
.then(function(response) {
return response.text()
})
.then(function(res) {
self.postMessage(res)
})
.catch(function(err) {
self.postMessage(err)
})
}
})