memoize-promise (npm): Works just like a normal memoize function. The only difference is that it  expects the function you are memoizing to return a promise. Until that promise  has resolved/rejected, subsequent calls to the function will return the same  promise.
Keywords: memoize|promise|network|caching