2017-08-09 34 views
0

我使用终极版环的V2.2.2来处理从服务器调用我的副作用返回承诺。终极版环路调度没有从减速

已经dispactched的行动从我的部件,像这样:

checkStatus() { 
    const user = Utils.toJS(this.props.user); 
    this.props.dispatch(UserActions.getUserData(user._id)) 
    .then((res) => { 
     console.log(res) 
    } 
} 

我希望我的承诺来自于调度回来,但它总是返回

[]

我的动作看起来像这样...

export async function getUserData(data) { 
return await getUser(data) 
    .then((res) => ({type: USER_GET_SUCCESS, payload: res})) 
    .catch((err) => ({type: USER_GET_FAILURE, payload: err})); 
} 

where getUser look li柯:

export async function getUser(data) { 
    return await get(`/users/${data}`) 
} 

和被夹在减速并保存到状态,像这样:

case USER_GET_SUCCESS: 
    return state 
    .set('user', fromJS(action.payload.data)); 

的数据总是回来正常,但由于某种原因,永远不会被返回的承诺,原调度。

任何建议将是惊人的!

+0

不要使用await/async – DKo

回答

1

我认为这个问题的一部分是混合诺言.then代码与异步/等待一个函数中调用。试试这个:

export async function getUserData(data) { 
    try { 
    const result = await getUser(data); 
    return { type: USER_GET_SUCCESS, payload: result }; 
    } catch (err) { 
    return {type: USER_GET_FAILURE, payload: err}; 
    } 
}