caching - 什么是好的 javascript 异步初始化/缓存模式?
问题描述
对于同步代码,我这样做:
return opts || (opts = getOpts())
确保事情很容易被缓存/初始化。
在异步/承诺模式中最容易做到这一点是什么?
目前我有一个重复的样板
if (result) {
return Promise.resolve(result);
} else {
return getResult().then(_result => {
result = _result;
return result;
}
}
多次完成时很烦人。
我发现的库要么未维护,要么提供不友好的语法。
有什么建议或想法吗?
解决方案
您可以像这样使用 await 关键字实现更友好的语法
if (!result) result = await getResult();
return result;
推荐阅读
- android - 响应不是来自使用改造的服务器
- c - 逐部分获取 vsnprintf() 输出
- asciidoctor - 从 asciidoctor 激活植物
- ms-word - 在哪里取消隐藏隐藏的部分?
- regex - PostgreSQL 正则表达式不是那么不贪婪
- android - ExifInterface saveAttributes() 不将属性保存到 jpg 图像
- python - `import dolphindb` 时 DLL 加载失败
- javascript - 如何在 laravel 5.7 的不同页面上将数据从一个表单传递到另一个表单?
- javascript - 如何删除数组中的重复出现?
- react-select - 选项未显示在 react-select 下拉列表中,但可以在 console.log 中看到数组看起来不错