我想知道我們可以在React Redux(使用thunk)中使用async/await的哪些不同方式,並且如果有良好的約定,它們是什麼?我認爲它會是不錯的:使用異步/等待在reactx應用程序的最佳約定
- 在容器中,而不是必須使用的承諾
then()
,如this.props.myAction.then(...) 就不能有類方法中的async關鍵字,但在方法體中呢?例如:
異步DoSomething的(){ 常量數據=等待this.props.myAction() 的console.log(數據) }
//但也許(它的失敗對我來說,如果動作是類似於我的工作行爲示例*請參閱下面) doSomething(){處理器= async()=>等待this.props.myAction()/ /我想這裏的等待是多餘的,但添加清楚,給你 const data = handler() console.log(data) }
我工作的解決方案如下:
// MOCK data
const MOCK_DATA = [1, 2, 3, 4, 5]
// Action
export function myAction (payload) {
return async (dispatch) => {
const getter =() => {
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve({serverResponse: MOCK_DATA})
}, 1200)
})
return promise
}
try {
return await getter()
} catch (error) {
console.log(error)
}
}
}
// Container
class Foobar extends Component {
async doSomething() {
const data = await this.props.myAction()
}
render() {
return (
<div>
<button onClick={this.doSomething}>Do something!</button>
</div>
)
}
}