the most important thing in this post is: return a promise.

The read return a promise, so in the first read function, return a
second read