私はfetch()関数の実行を制御することに問題があります。特に私は、ユーザがfetch()リクエストを迷惑にならないようにしたい。fetch()はいつReduxで実行されますか?
私はミドルウェアの中でこれを行うことを考えていましたが、fetch()を使ったアクションがそこに到達するまでには、ペイロードはすでに約束しています。
私の質問は、正確にfetch()がすでに実行されているのですか?
大事な場合は、私のコードはおおよそ次のようになります。
親アクション:
{
return (dispatch) => {
if (mode === 'MY') {
dispatch(myAction(...);
}
dispatch(someOtherAction(...));
}
}
私のアクション:
{
type: 'TYPE',
promise: post(url, payload)
}
私のポスト方法:
{
console.log('sending POST');
return fetch(url, {
//fetch info
});
}
マイミドルウェア:
{
return next => action => {
const { promise, //other fields } = action;
//Already a promise here.
if (!promise) {
return next(action);
}
return promise.then(
//Processing data
);
};
}
Reduxのドキュメントを読んで、私はこの行を見つけました "...アクション作成者が関数を返すと、その関数はRedux Thunkミドルウェアによって実行されます..." これは私の問題がRedux-Thunkに起因することを意味しますか?私のアクションがディスパッチされるたびにRedux-Thunkは私のカスタムミドルウェアに達する前に即座に私の機能を実行します。 –