Javascript 操作创建者未等待

Javascript 操作创建者未等待,javascript,reactjs,redux,react-redux,redux-thunk,Javascript,Reactjs,Redux,React Redux,Redux Thunk,我在我的应用程序中使用占位符json api来获取一些帖子和他们的用户。但是,用户有重复的ID,并且这些ID被多次提取。。因此,我尝试使用以下代码仅获取唯一ID。。但是,当我控制台记录getState().posts进行调试时,它显示的是一个空数组,因为稍后将调用api 我不明白的是为什么“等待”不起作用 另外,fetchUser从未接到过电话我不明白为什么 我是redux的新手,如果这是一个愚蠢的问题,我很抱歉 这是我的密码 import _ from 'lodash' ; export c

我在我的应用程序中使用占位符json api来获取一些帖子和他们的用户。但是,用户有重复的ID,并且这些ID被多次提取。。因此,我尝试使用以下代码仅获取唯一ID。。但是,当我控制台记录getState().posts进行调试时,它显示的是一个空数组,因为稍后将调用api

我不明白的是为什么“等待”不起作用

另外,fetchUser从未接到过电话我不明白为什么

我是redux的新手,如果这是一个愚蠢的问题,我很抱歉 这是我的密码

import _ from 'lodash' ;

export const fetchEvery = () => async (dispatch, getState) => {
console.log("Before") ;
await dispatch(fetchData()) ;
console.log("After" , getState()) ;
const ids = _.uniq(_.map(getState().posts, 'userId')) ;
console.log(ids) ;
ids.forEach( id => dispatch(fetchUser(id))) ;
} ;

export const fetchData = () => dispatch => {
    let resp = {} ;

    fetch('http://jsonplaceholder.typicode.com/posts/')
    .then( res => {
            if ( res.ok )
              return res.json() ;
            else 
              throw Error(res.statusText)
          } )
    .then( res => {
            console.log(res) ;
            resp = res ;
            dispatch( {
                    type : 'FETCH_DATA' ,
                    payload : resp  
                }) ;
                    } )
    .catch( err => console.log(err) ) ;

} ;

export const fetchUser = (id) => (dispatch) => {
fetch('http://jsonplaceholder.typicode.com/users/' + id )
.then( res => {
            if ( res.ok )
              return res.json() ;
            else 
              throw Error(res.statusText)
          } )
    .then( res => {
            console.log(res) ;
            dispatch( {
                    type : 'FETCH_USER' ,
                    payload : res  
                }) ;
                    } )
    .catch( err => console.log(err) ) ;

} ;

在fetch methods
return
the
fetch
。目前,他们没有返回任何东西-因此没有承诺-因此,您的顶级
等待
立即得到解决,因为在您的获取方法
中没有承诺等待。

返回
获取
。目前他们没有返回任何东西-因此没有承诺-因此您的
wait
在顶层立即得到解决,因为没有承诺
wait
等待