如何调用异步清理函数?

How to call an async cleanup function?

如何在 useEffect 中调用异步清理函数?

useEffect(() => {
    return () => Voice.destroy().then(Voice.removeAllListeners);
  }, []);

EffectCallback 需要 void,而不是 Promise<void>

你可以用花括号包裹正文,因为目前它 return 是 Promise(当你省略花括号时会发生这种情况,一行 return) ,这使您的清理函数 return 成为 Promise<void>。使用花括号,它将只是函数的主体而不是隐含的 return 语句:

useEffect(() => {
    return () => {
           Voice.destroy().then(Voice.removeAllListeners)
        };
  }, []);