Use `Promise.method` to ensure function return value is always a promise.

Using `Promise.method` is good practice to avoid releasing Zalgo.
http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony

Change-Id: I29a100fc1f5095f85d456fab8a49e8d767224f76