【发布时间】:2020-06-12 07:05:10
【问题描述】:
我正在尝试在 React 网络应用程序中实现 Bullet train API。根据他们的node client documentation,我设置了以下功能:
export const isFeatureEnabled = async (nameOfTheFeature) => {
return new Promise((resolve) => {
bulletTrain.init({
environmentID: BULLET_TRAIN_ENV_ID
});
bulletTrain.hasFeature(nameOfTheFeature)
.then((featureFlag) => {
if (featureFlag[nameOfTheFeature].enabled) {
resolve(true);
}
})
.catch(err => resolve(false));
});
}
这在像这样的常规组件中被调用:
render() {
return (<div>{await isFeatureEnabled('feature1') && <p>feature1 is enabled</p>}</div>)
};
抛出这个:
解析错误:不能在异步函数之外使用关键字 'await'
如果我们添加 async 关键字,并带有适当的返回语句:
async render() {
return (<div>{await isFeatureEnabled('feature1') && <p>feature1 is enabled</p>}</div>)
};
然后它抛出:
你的渲染方法应该有return语句
那么在 react 应用程序中使用这个承诺的功能的正确方法是什么?
【问题讨论】:
标签: node.js reactjs promise async-await