es6 promise 的跨浏览器及 Node.js 环境的实现