【发布时间】:2019-09-22 03:12:15
【问题描述】:
在我的应用程序中,我从 API 获取信息并将其缓存。如果缓存未命中而我最终检索数据来存储它,我应该什么时候更新缓存?
当一个 promise 被执行时,resolve 不会停止函数其余部分的执行。我想尽快返回信息,所以如果我先解决承诺,然后更新缓存,我真的会获得任何性能优势吗?或者我是否正在为比赛条件或类似的事情做好准备?
这个
new Promise((resolve, reject) => {
let result = getThingFromApi();
resolve(result);
updateCache(result); // returns promise
})
还是这个?
new Promise((resolve, reject) => {
let result = getThingFromApi();
updateCache(result); // returns promise
resolve(result);
})
【问题讨论】:
-
如果
getThingFromApi()返回一个承诺,则使用反模式。也不需要new Promise -
确保避免
Promiseconstructor antipattern,以防getThingFromApi返回承诺!
标签: javascript node.js promise