Promise.resolve

查看:84
本文介绍了Promise.resolve的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

就像之前所说的,promise能够将同步代码包装成异步的形式。然而,如果你经常写出如下的代码:

new Promise(function (resolve, reject) {
resolve(someSynchronousValue);
}).then(...);

你可以使用Promise.resolve()将上述代码精简。

Promise.resolve(someSynchronousValue).then(...);

在捕获同步异常的时候这个做法也是很有效的。我在编写API的时候已经养成了使用Promise.resolve()的习惯:

function somePromiseAPI() {
return Promise.resolve().then(function () {
doSomethingThatMayThrow();
return 'foo';
}).then(...);
}

记住,有可能抛出错误的代码都有可能因为错误被吞噬而对你的工作造成困扰。但是如果你用Promise.resolve()包装了代码的话,你永远都可以在代码后面加上catch()。

相同的,使用Promise.reject()可以立即返回一个状态为rejected的promise对象。

Promise.reject(new Error('some awful error'));

解决方案

这个是我要记笔记,却发成问题了.

这篇关于Promise.resolve的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆