データベースから多くのデータをロードし、それに基づいていくつかの結果を計算する 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
})