2017-02-16 66 views
0

我有以下代碼:ReactJS /終極版/ Axios公司等待服務器請求以完成

handleDeleteBlackList(id, event) { 
    this.props.actions.deleteBlackListItem(id, this.props.token); 
    this.props.actions.fetchBlackListItems(this.props.token); 
    } 

第一行刪除從一些web服務的記錄,所述第二獲取更新後的數據。有時系統不會等待第一個請求完成,然後再執行第二個請求,我的「更新」數據根本沒有更新...

我正在尋找一些解決方案來等待第一個請求完成然後執行第二個請求。

編輯:

我已經使用與setTimeout函數的解決辦法,但它應該有固定它的一個更好的辦法...

+0

這可能有幫助:https://github.com/reactjs/redux/issues/1676 – bejado

+0

你的axios代碼在哪裏?如果您使用的是axios,那麼您將能夠利用它使用Promise來處理異步事件的事實,例如 – Pineda

回答

1
也許使用異步

/等待。

async handleDeleteBlackList(id, event) { 
    const actionResponse = await this.props.actions.deleteBlackListItem(id, this.props.token); 
    // No idea what you have set your type: to in your action so I just made this up 
    if (actionResponse && actionResponse.type === 'DELETE_SUCCESS'){ 
     this.props.actions.fetchBlackListItems(this.props.token); 
    } 
    } 

這將取決於你如何結構化你的行動。需要看代碼deleteBlackListItem