在这种情况下如何维护一个类似 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?
推荐答案
Native Promises
看看原生 Promise 对象的静态方法 resolve
和 拒绝
.
function foo(options) {
if(!isValid(options)) {
return Promise.resolve();
}
return promisifiedThirdPartyApi(options);
}
角 $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屋!
查看全文