在这种情况下如何维护类似promise的API? [英] How to maintain a promise-like API in this case?
本文介绍了在这种情况下如何维护类似promise的API?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
function foo(options) {
if(!isValid(options)) {
// I want to return a resolved promise here to permit client code to continue without a failure
}
return promisifiedThirdPartyApi(options); // Does not handle an invalid options object successfully
}
如何以惯用方式返回在无效情况下解决了承诺?
How can I idiomatically return a resolved promise in the "invalid" case?
推荐答案
原生承诺
查看本机Promise对象的静态方法 resolve
和 拒绝
。
function foo(options) {
if(!isValid(options)) {
return Promise.resolve();
}
return promisifiedThirdPartyApi(options);
}
Angular $ q
使用 $ q.when
从某些非Promise对象返回已解析的Promise:
Angular $q
Use $q.when
to return a resolved Promise from some non-Promise object:
function foo(options) {
if(!isValid(options)) {
return $q.when([]);
}
return promisifiedThirdPartyApi(options);
}
Q承诺
使用 Q.resolve()
返回已解决的承诺。
Q Promises
Use Q.resolve()
which returns a resolved promise.
function foo(options) {
if(!isValid(options)) {
return Q.resolve();
}
return promisifiedThirdPartyApi(options);
}
这篇关于在这种情况下如何维护类似promise的API?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文