Axios: 422 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХреА рдЧрдИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдлрд╝рд░ре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: axios/axios

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрдИ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ [email protected] (0.15.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реБрдЖ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдРрдк рдХреЗ рдЕрдиреНрдп рд╕рднреА рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ, рд╣рдо .catch() 422 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ 1 рдЕрдиреБрд░реЛрдз рдПрдХ рд╡рд╛рджреЗ рдХреЛ рд╣рд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ 422 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА рд╣реИред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдЕрдиреНрдп рд╕рднреА рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ, рдПрдХ 422 рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрдХреНрд╖реАрдп рд╡рд╛рджреЛрдВ рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

export function addTool(name: string): Thunk {
  return (dispatch, getState) => {
    Axios
      .post<Tool>(API.current.toolsPath, { name })
      .then(resp => {
        if (resp instanceof Error) { throw resp; }
        success("Tool has been saved.", "Success");
        dispatch(addToolOk(resp.data));
      })
      .catch((e: Error) => {
        dispatch(addToolNo(e));
        error(prettyPrintApiErrors(e));
      });
  };
}

рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдБ

рдореИрдВ рдЕрдкрдиреЗ .then() рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:

if (resp instanceof Error) { throw resp; }

рдЬреЛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ 422 рдХреНрдпреЛрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдП)ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рднреА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдРрд╕реА рдХреЛрдИ рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЕрдХреНрд╖рддрдВрддреБ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп 422 рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛? рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдереА рдЬреЛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдЫрд┐рдкреА рд╣реБрдИ рдереА, рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдПрдХреНрд╕рд┐рдпреЛрд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

рдХреБрдЫ рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЦрд░рд╛рдм "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрдд" рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдкрд░ рдкрд┐рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдХреЗ рднреАрддрд░ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛:

return error

рдФрд░ рдореИрдВрдиреЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛:

return Promise.reject(error);

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреА рдкреБрд╖реНрдЯрд┐ред рдореИрдВ redux-saga рдХреЗ рд╕рд╛рде axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдХреБрдЫ 422 рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдареАрдХ рд╕реЗ рдРрдк рд▓реЗрдпрд░ рддрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗ, рдбреА рдУрд╣! рдореИрдВ

рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдереА рдЬреЛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдореЗрдВ рдЫрд┐рдкреА рд╣реБрдИ рдереА, рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдПрдХреНрд╕рд┐рдпреЛрд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

рдХреБрдЫ рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЦрд░рд╛рдм "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрдд" рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдкрд░ рдкрд┐рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдХреЗ рднреАрддрд░ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛:

return error

рдФрд░ рдореИрдВрдиреЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛:

return Promise.reject(error);
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

shaosh picture shaosh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

c0debreaker picture c0debreaker  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

achingbrain picture achingbrain  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

reggi picture reggi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ