首页 > 解决方案 > 什么是好的 javascript 异步初始化/缓存模式?

问题描述

对于同步代码,我这样做:

 return opts || (opts = getOpts())

确保事情很容易被缓存/初始化。

在异步/承诺模式中最容易做到这一点是什么?
目前我有一个重复的样板

if (result) {
   return Promise.resolve(result);
} else {
   return getResult().then(_result => {
       result = _result;
       return result;
   }
}

多次完成时很烦人。
我发现的库要么未维护,要么提供不友好的语法。

有什么建议或想法吗?

标签: cachingpromise

解决方案


您可以像这样使用 await 关键字实现更友好的语法

if (!result) result = await getResult();
return result;

推荐阅读