return Promise when callback missing. fixed #33