【发布时间】:2021-12-30 00:46:42
【问题描述】:
如何正确地从 promise 函数中存储值而不延迟?
我正在尝试使用 useEffect 挂钩,但我的状态仍然延迟。
如果用户正在验证他的购物车,可能会应用错误的税款。
useEffect(() => {
SalesTax.getSalesTax(country, region).then((tax) => {
setTax(tax.rate);
});
}, [region]);
<RegionDropdown
country={country}
className="capitalize input"
value={region}
onChange={(val) => {
setRegion(val);
}}
required
countryValueType="short"
valueType="short"
/>
【问题讨论】:
-
你没有。
SalesTax.getSalesTax是异步的,在 promise 完成之前,没有任何价值。找到一种向用户表明这一点的方法,例如通过显示“税收负担”指示器。 -
(打个比方:) 我以前在大学也遇到过类似的问题。我和我的女朋友会在电话里聊几个小时。我会请她过来,但这是在手机之前,所以出于显而易见的原因,在我们挂断电话之前,她不能离开宿舍来看我。除非我们结束谈话,否则我们不可能见面。这个故事的寓意是,如果你错过了它,你必须等待(挂断电话)异步事情(去另一个房间)发生,然后才能解决承诺(kissy Kissy)。
标签: javascript reactjs promise