繁体   English   中英

try...catch 在 useEffect 内部的异步调用中需要吗?

[英]try...catch needed in async call inside useEffect?

我正在尝试在useEffect挂钩中做一些异步的事情。 因此,首先我定义了异步 function,然后我将其称为 function。我不太确定如何正确处理错误。 try...catch部分是否也需要作为.catch调用的 .catch? 不一样吗?

useEffect(() => {
  const fetchData = async () => {
    try {
      const token = await AsyncStorage.getItem('auth.token')
      // do something
    } catch (e) {
      console.error(e)
    }
  }

  fetchData().catch(console.error)
}, [])

在 JavaScript 中,您有两种处理异步操作的选项,您可以使用async await或 .then( .then() & .catch() 这是两者的示例:

 useEffect(() => { const fetchData = async () => { try { const token = await AsyncStorage.getItem('auth.token') // do something } catch (e) { console.error(e) } } fetchData() }, [])

 useEffect(() => { const fetchData = () => { AsyncStorage.getItem('auth.token').then(token => console.log(token)).catch(err => console.error(err)) } fetchData() }, [])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM