【发布时间】:2021-11-06 20:58:14
【问题描述】:
我有 2 个函数,我想一个接一个地运行,但是由于第二个函数从前一个函数中创建的状态中获取信息,我希望它在执行之前等待它完成。
我知道 async/await 可能是这方面的最佳选择,但还没有完全掌握它。
第一个函数实质上是从一组数据中获取最近的位置,并将状态设置为该数据中的第一项,然后第二个函数将地图从前一个函数的纬度/经度移动到该位置。
这是我目前的代码:
const nearestPod = () => {
let newArr = [];
let closest = [];
data.map(item => newArr.push(item.distance));
newArr.sort(function (a, b) {
return a - b;
});
data.map(item => item.distance == newArr[0] && closest.push(item));
setClosestPod(closest);
setNearestActive(true);
moveToNearestPod();
};
const moveToNearestPod = async () => {
await nearestPod();
let lat = closestPod[0].lat;
let lng = closestPod[0].lng;
setLat(lat);
setLng(lng);
};
此功能确实有效,但仅在第二次单击时才会向我抛出 Promise Rejection 警告,所以我感觉我快要做到了,但如果有人能提供一些专业知识,让我知道前进的最佳实践,我将不胜感激!
提前致谢。
【问题讨论】:
标签: javascript reactjs react-native async-await promise