【发布时间】:2019-03-21 09:04:56
【问题描述】:
我试图通过将它们保存在一个简单的缓存中来限制我项目中的 api 获取数量,即 mongodb 中的密钥集合。有没有办法在不使用 async/await 的情况下停止 Promise 中 .then() 的传播?
export const getData = (url: string) => {
return new Promise((resolve, reject) => {
findInCache(url)
.then((cached: string | null) => {
if (cached) {
resolve(cached);
}
})
.then(() => {
axios
.get(url)
.then(({data}) => {
setCache(url, data, TTL);
resolve(data);
})
.catch(e => reject(e));
});
});
};
【问题讨论】:
-
在 Promise 执行器中包含
.then表明您对承诺构造函数反模式有罪 -
@Liam Wound 没有调用拒绝导致在我调用 getData() 的地方触发 .catch ?
标签: javascript express asynchronous es6-promise