在获取捕获块中拒绝 redux 形式的承诺

Reject promise in redux-form in fetch catch-block

如何在 .catch-block 中抛出一个新的 SumbmissionError 而没有得到未处理的拒绝?

这会引发未处理的拒绝(提交错误)

import { SubmissionError } from 'redux-form';

const submit = (data) => {
    console.log(data);

    const config = {
        method: 'GET'
    };

    return fetch('http://www.notAvailable.com/', config)
        .then(response => {
            console.log(response)
        })
        .catch(err => {
            throw new SubmissionError({_error: 'Error'});
        });
}

export default submit;

如果你 return 对 onSubmit config / prop 或 handleSubmit reduxForm 的承诺应该赶上 SubmissionError:

const { createStore, combineReducers } = Redux;
const { Provider } = ReactRedux;
const { reduxForm, SubmissionError, reducer } = ReduxForm; 

const submit = () =>  new Promise((resolve, reject) => {
  setTimeout(() => reject('500'), 100);
}).catch(e => {
  throw new SubmissionError({ _error: 'service error' })
});

const Form = reduxForm({ 
  form: 'example',
  onSubmit: submit
})(props => (
  <form onSubmit={props.handleSubmit}>
    <pre>{JSON.stringify(props, null, 4)}</pre>
    <button type="submit">submit</button>
  </form>
));

const store = createStore(combineReducers({ form: reducer }));

ReactDOM.render((
  <Provider store={store}>
    <Form />
  </Provider>
), document.getElementById('root'));

JSFiddle:https://jsfiddle.net/pariesz/6srugtwr/