我在 koa 中有一个端点,它从数据库中加载大量数据,然后根据它计算一些结果。这可能需要几秒钟。
如果浏览器取消请求,请求会发生什么?就像浏览器选项卡被关闭等。
例如,cache.c
即使浏览器取消或 koa 足够聪明,可以简单地停止它为此请求启动的任何操作,也会被填充?
const cache = {}
router.get('/data', function *(next) {
if (cache.c) return this.body = cache.c
// somewhere here the browser cancels the request
//---
const a = yield db.getA()
const b = yield db.getB()
cache.c = yield calculateC(a,b)
//---
this.body = cache.c
})