gpt4 book ai didi

javascript - 对 firebase 的异步和等待标注不等待

转载 作者:行者123 更新时间:2023-11-30 23:57:35 24 4
gpt4 key购买 nike

我有一个类似约会的应用程序,我希望每次用户单击“连接”选项卡按钮时都能够查询新的匹配项。

我不确定我是否错误地编写了等待或异步,但如果用户移动得太快而数据库无法返回结果,则返回的匹配项加载速度不够快。到目前为止,我所得到的是:在加载页面时,我调出 Firebase,当用户导航离开然后导航回“连接”选项卡时,我调回 Firebase。 getMatches() 方法是对 firebase 的调用。

const MatchesScreen = ({navigation}) => {
const {state, updateDislikedQueue, updateLikedQueue, getMatches} = useContext(AuthContext);
const [loaded, setLoaded] = useState(false);
const [queue, setQueue] = useState({});
const [noMatches, setNoMatches] = useState(false);
const [updateProfileAndPreferences,setUpdateProfileAndPreferences] = useState(false);

const getMatchesMethod = async () => {
getMatches().then(matches => {
if (!matches) {
Alert.alert("Update Preferences and Profile before connecting");
setUpdateProfileAndPreferences(true);
} else {
setUpdateProfileAndPreferences(false);
let cardData = [];
for (m in matches) {
if (matches[m].id == state.id) {
continue;
} else {
let user = {
id: matches[m].id,
fullName: matches[m].info.fullName
};
cardData.push(user);
}
}
if (cardData.length > 0) {
setQueue(cardData);
setLoaded(true);
} else {
setNoMatches(true);
Alert.alert("No Connections Available");
}
}
});
};

useEffect(() => {
getMatchesMethod();
const unsubcribe = navigation.addListener("willFocus", () => {
getMatchesMethod();
});
// return unsubcribe.remove();
}, []);

此外,当我尝试取消订阅时,当用户来回导航时监听器似乎不起作用。如果我对异步调用和监听器的错误有任何帮助,我们将不胜感激。

最佳答案

我认为您只是忘记了函数中的await关键字我一直都这样啊哈哈

关于javascript - 对 firebase 的异步和等待标注不等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60942249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com