Which is the best practice to read a file asyncrouniously? Should I just read it with open and return the result in a callback or is there a lower level API that's more appropriate?