【问题标题】:Trigger Callback for Async await function which is called on focus event在焦点事件上调用的 Async await 函数的触发器回调
【发布时间】:2023-02-17 19:37:08
【问题描述】:

我试图在页面焦点上调用函数“handleCb”。这个 handleCb 是一个异步函数,在它返回时我想调用另一个函数“showResult”。问题是 cb 函数 showResult 在第一次之后没有被触发,这是可以理解的,因为它不是焦点事件的一部分。如何解决这个问题?这是在 React 组件中。

useEffect(() => {
  window.addEventListener('focus', handleCb)
  // I need a way to trigger below after later 'focus' events.
  handleCb().then((result) => showResult(result)) 
}, [])

const handleCb = async () => {
  return await Promise.resolve('good job')
}

更多背景知识:showResult 不能在 handleCb 内部调用。

【问题讨论】:

    标签: javascript reactjs async-await


    【解决方案1】:

    您可以通过调用 focus eventListener 中的两个函数来实现

    useEffect(() => {
      window.addEventListener('focus', () => {
        return handleCb().then((result) => showResult(result)) 
      })
    }, [])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      • 2016-02-02
      • 2017-12-17
      • 2019-02-17
      相关资源
      最近更新 更多