javascript - 如何在异步函数中从此返回的对象中提取数据?

标签 javascript reactjs react-native

我正在尝试在 JavaScript 中做一些工作 - 我从异步函数调用异步函数,如下所示。

  useEffect(() => {
    (async () => {
      await asyncFunction();
      // do stuff
    })();
  }, []);
asyncFunction 看起来像这样
const asyncFunction = (dispatch) => {
  return async (data) => {
    try {
      const response = await APICall();

      dispatch({ type: "search", payload: response.data });
    }
    // error handling
}
asyncFunction 调度到一个reducer,它返回return { errorMessage: "", data: action.payload };通过我自己的测试,我已经看到 console.log(asyncFunction())返回一个 promise ,console.log(await asyncFunction())什么都不返回。
我注意到的一件奇怪的事情是,在程序的每个部分中放置 console.log 语句时,首先打印出来自函数调用(在 useEffect block 中)的 promise ,然后是来自 console.log 语句的 reducer 中的数据右添加了 return { errorMessage: "", data: action.payload }; .
所以我的问题是,我如何访问这些数据?我在这里查看了其他一些建议使用 .then 的线程。 ,但这并不成功。有没有办法在不传入回调函数的情况下做到这一点(这样做意味着我需要重组整个程序)。
这篇文章有点长,所以如果您有任何问题,或者需要我的程序的其他部分,请告诉我。

最佳答案

我可能完全错了,但我认为您可能会遇到返回异步函数的问题,explained here in docs .
此外,看起来您可能正在调用 asyncFunction (在您的 useEffect Hook 内)而没有调度值?这里:

  (async () => {
      await asyncFunction();
      // do stuff
按照您的计划,我为 API 调用反刍了一个自定义钩子(Hook):
link to sandbox .
希望它会有所帮助!

关于javascript - 如何在异步函数中从此返回的对象中提取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65661858/

相关文章:

javascript - 单击导航栏,每次都会附加子路线

CSS 架构、7-1 和样式组件

javascript - 如何在底部导航栏中访问类的 this.state (React Native)

react-native - 类型错误 : Super expression must either be null or a function (GiftedChat)

reactjs - 如何联合类型 react 导航 Prop ?

javascript - Fabric js多选移动不会触发单个对象的移动事件

javascript - 用 window.find() 匹配所有出现的地方

reactjs - WebStorm 中针对 React 生命周期方法的继承声明冲突警告

javascript - 在 js 中编码时正确的函数顺序

javascript - 使用 AJAX XHR 时出现错误 404 但仍然转到 Spring Controller