如何保证承诺不会拒绝的API用户
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何保证承诺不会拒绝的API用户相关的知识,希望对你有一定的参考价值。
我有一个promise返回函数,并且那个promise从不拒绝,我总是处理所有错误并仍然解析一个值。我想通知用户,他/他不必在承诺中附加catch功能。
const createItem = (name: string): Promise<boolean> => {
return new Promise<boolean>(resolve => {
someAjaxCall().then(response => {
if (response.status >= 200 && response.status < 300) {
resolve(true);
} else {
handleError(); // some logging to console
resolve(false);
}
}).catch(error => {
handleError(); // some logging to console
resolve(false);
});
});
}
实际上将返回类型更改为Promise<void>
,并用resolve(true)
替换resolve()
零件,并用resolve(false)
替换reject()
零件解决了我的问题。
但是我想知道还有其他方法可以告诉API用户“您将不再需要追加catch,因此您必须在那时准确地处理这些值”。
答案
但是我想知道还有其他方法可以告诉API用户“您将不再需要追加catch,因此您必须在那时精确地处理这些值”。
没有类似于以下事实:类型系统中没有办法说函数永不抛出,而承诺永不拒绝也没有办法。
您唯一的选择是,为此添加文档,
以上是关于如何保证承诺不会拒绝的API用户的主要内容,如果未能解决你的问题,请参考以下文章
承诺要么永远不会被调用,要么被拒绝(Parse JS SDK)
当用户选择“不再询问”并禁用地理定位时,React native `Geolocation.getCurrentPosition` 承诺将永远不会被解决/拒绝