Wpis z mikrobloga

W jaki sposób w javascripcie trzymać dynamicznie tworzone referencję do funkcji? Chciałem zrobić to w elegancki sposób więc wrapowałem metode w Event jednak wykonanie metody wraz ze zwroceniem wartosci zajmuje ~1ms co wydaje mi sie byc zbyt duze na cos takiego jak pobranie jakiejs wartosci.

Czy trzymanie przykladowo funkcji w obiekcie z indexami bedzie w porzadku? Funkcji moga byc synchroniczne jak i nie


#javascript #es6 #node
  • 4
  • Odpowiedz
@atthedrivein: Czyli chcesz zrobić cache który doda wartość wraz z czasem jej stworzenia oraz czasem upływu ważności? Nie przekombinowałeś tego? Nie rozumiem co tam się dzieje jak masz i funkcję asynchroniczną, i eventy zakończenia.

Nie chcesz mieć czegoś co na cache.get('mojcache1') zwróci Ci promise?

No i pamiętaj o czyszczeniu listenerów gdy nie są już potrzebne.
  • Odpowiedz
@atthedrivein: Jeśli nie ma możliwości zmiany, aktualizacji cache to najprościej jest dać po prostu setTimeout na określony czas i on Ci usunie tą wartość. Może tak. Niech obiekt cache ma wartość, datę utworzenia, czas trwałości, timeout. I wtedy na na przykład funkcję update możesz robić clearTimeout(cache[name].timeout). Tylko nie wiem jak to wpłynie na wydajność, jak w obiekcie będzie dużo setTimeout.

https://medium.com/@danielsternlicht/caching-like-a-boss-in-nodejs-9bccbbc71b9b

  • Odpowiedz
@warstwowy_kabel: Tak spojrzalem w ten poradnik to paczka uzywa node-cache, ktore uzywa EventEmittera ( ͡° ͜ʖ ͡°) Z reszta nie wiem do konca po co setTimeout?
Chcialbym aby cache aktualizowal sie w momencie pobierania wartosci poprzez funkcje get (w tej funkcji sprawdzam ostatnia aktualizacje). W zasadzie gdybym chcial abym cache aktualizowal sie samemu to szedlbym w strone workerow. Lecz wtedy nie uzysykalbym zadawalajacej wydajnosci.

Pytaniem jest bardziej
  • Odpowiedz