
Një cache në nivel moduli mund të ripërdorë të dhëna të përfunduara mes kërkesave në një Cloudflare Worker. Por ndarja e një operacioni ende në proces krijon varësi: puna pas një promise mund t’i përkasë kërkesës që e nisi. Për cache-t e Teasa brenda një isolate, rregulli është të ndahen vetëm vlerat e përfunduara.
Ruajtja e menjëhershme e një promise në një Map shmang lexime të dyfishta, por e bën kërkesën B të varet nga operacioni i kërkesës A. Shembulli fillestar ruan gjithashtu përgjithmonë promise-t e refuzuara dhe nuk ka mekanizëm largimi të hyrjeve. Pastrimi i tyre nuk ndryshon pronësinë e operacionit I/O.
Cloudflare dokumenton gabimin «Cannot perform I/O on behalf of a different request». Shembulli i saj ndan një Response mes thirrjeve, ndërsa trupi i përgjigjes i përket thirrjes që e krijoi. Problemi nuk është vetë promise: Promise.all brenda një kërkese dhe një objekt JSON i përfunduar janë raste të ndryshme.
Qasja e propozuar kthen vlerën e paruajtur vetëm nëse është ende e vlefshme; kur ajo mungon, çdo kërkesë kryen leximin e vet dhe ruan të dhënat pas suksesit. Dy kërkesa të njëkohshme pa vlerë në cache bëjnë qëllimisht dy lexime. Kështu, B nuk varet nga një lexim i A që mund të mos përfundojë. Teksti paraqet edhe një shembull JavaScript për të dhëna publike, me TTL dhe kufi hyrjesh.
Burimi: DEV Community (Web Dev Feed) — lexoni artikullin e plotë në anglisht.

