new Promise vs Promise.resolve

异步嘛,新项目上了ES6,反正就是用,虽然没有用async/await,感觉promise也可以处理大部分情况了,毕竟项目的异步数据流没有那么复杂,这里记录一下下,有时候封装异步操作为promise,看到别人的代码有用new的,有直接调resolve的,故查了一下两者的区别。

Promise.resolve(x); 和 new Promise(function(r){ r(x); }); 是有一样的效果的,都是返回一个promise,来让使用者使用。只是Promise.resolve返回的是一个已经resolved的promise,而new Promise返回的是一个既没有resolve也没有reject的promise。

在stackoverflow上有人提到了对异常的捕获也不一样,我没有太读懂,回头在补充吧~

通常Promise.resolve的用例就是把objects或者是thenables的对象转换成promise对象来使用。