Я использую redux-saga
в своем проекте React, API использует OAuth2. Теперь мне нужно разработать функцию re-authen.
Каждый запрос на обслуживание API отправляет access_token
в заголовок. Когда срок действия access_token
истечет, я хотел бы получить новый токен с refresh_token
.
У меня есть компонент, вызовите 4 действия для вызова API, например:
class MyComponent extends React.Component {
componentWillMount() {
this.props.getData1();
this.props.getData2();
this.props.getData3();
this.props.getData4();
}
}
Итак, когда токен истек, getData1()
вызовите API обновления токена, дождитесь ответа нового токена и вызовите самого себя. getData2()
, getData3()
и getData4()
не отправили новый токен. Я обновляю свой скрипт на:
class MyComponent extends React.Component {
awaitFunction(functions) {
functions.map(async (_function) => await _function());
}
componentWillMount() {
this.awaitFunction([
this.props.getData1();
this.props.getData2();
this.props.getData3();
this.props.getData4();
]);
}
}
Так что действия не были вызваны по порядку. 2-е действие не было вызвано до 1-го действия.
Как мне применить await
к своим действиям?