muerwre.github.io/api/_content/query/CMMQ5oxSPg.json
muerwre 8ab5482294 commit 53b3abfc19
Author: Fedor Katurov <gotham48@gmail.com>
Date:   Mon Nov 7 15:13:41 2022 +0600

    set deark theme as default
2022-11-07 09:15:32 +00:00

1 line
No EOL
21 KiB
JSON

{"_path":"/frontend/react/axios-with-abortcontroller","_dir":"react","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Axios With AbortController","description":"If you need to cancel some request, use axios with AbortController. Previously axios used cancellation token, but now it's deprecated.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"If you need to cancel some request, use "},{"type":"element","tag":"a","props":{"href":"https://axios-http.com/docs/cancellation","rel":["nofollow"]},"children":[{"type":"text","value":"axios with AbortController"}]},{"type":"text","value":". Previously axios used cancellation token, but now it's deprecated."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"code-inline","props":{},"children":[{"type":"text","value":"AbortController"}]},{"type":"text","value":" can be used with a multiple requests to cancel them at once."}]},{"type":"element","tag":"code","props":{"code":"import { useCallback, useRef } from \"react\";\nimport axios from 'axios';\n\nconst client = axios.create();\n\nexport const useGetUsers = () => {\n const controller = useRef(new AbortController());\n \n const get = useCallback(async () => {\n const result = await client.get(\"/\", {\n // params and props here\n signal: controller.current.signal,\n });\n\n return result.data;\n }, []);\n\n const cancel = useCallback(() => {\n controller.current.abort();\n \n // controller should be rewritten or all requests will fail\n controller.current = new AbortController();\n }, [controller]);\n\n return { get, cancel };\n};\n","language":"typescript"},"children":[{"type":"element","tag":"pre","props":{},"children":[{"type":"element","tag":"code","props":{"__ignoreMap":""},"children":[{"type":"text","value":"import { useCallback, useRef } from \"react\";\nimport axios from 'axios';\n\nconst client = axios.create();\n\nexport const useGetUsers = () => {\n const controller = useRef(new AbortController());\n \n const get = useCallback(async () => {\n const result = await client.get(\"/\", {\n // params and props here\n signal: controller.current.signal,\n });\n\n return result.data;\n }, []);\n\n const cancel = useCallback(() => {\n controller.current.abort();\n \n // controller should be rewritten or all requests will fail\n controller.current = new AbortController();\n }, [controller]);\n\n return { get, cancel };\n};\n"}]}]}]}]},"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"If you need to cancel some request, use "},{"type":"element","tag":"a","props":{"href":"https://axios-http.com/docs/cancellation","rel":["nofollow"]},"children":[{"type":"text","value":"axios with AbortController"}]},{"type":"text","value":". Previously axios used cancellation token, but now it's deprecated."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"code-inline","props":{},"children":[{"type":"text","value":"AbortController"}]},{"type":"text","value":" can be used with a multiple requests to cancel them at once."}]},{"type":"element","tag":"code","props":{"code":"import { useCallback, useRef } from \"react\";\nimport axios from 'axios';\n\nconst client = axios.create();\n\nexport const useGetUsers = () => {\n const controller = useRef(new AbortController());\n \n const get = useCallback(async () => {\n const result = await client.get(\"/\", {\n // params and props here\n signal: controller.current.signal,\n });\n\n return result.data;\n }, []);\n\n const cancel = useCallback(() => {\n controller.current.abort();\n \n // controller should be rewritten or all requests will fail\n controller.current = new AbortController();\n }, [controller]);\n\n return { get, cancel };\n};\n","language":"typescript"},"children":[{"type":"element","tag":"pre","props":{},"children":[{"type":"element","tag":"code","props":{"__ignoreMap":""},"children":[{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"import"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" { "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":", "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"useRef"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" } "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"from"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-9aea1b"},"children":[{"type":"text","value":"\"react\""}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"import"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"axios"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"from"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-9aea1b"},"children":[{"type":"text","value":"'axios'"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-07b026"},"children":[{"type":"text","value":"client"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"axios"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"create"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"();"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"export"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"useGetUsers"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" () "}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-07b026"},"children":[{"type":"text","value":"controller"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"useRef"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"new"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"AbortController"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"());"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-07b026"},"children":[{"type":"text","value":"get"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"async"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" () "}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-07b026"},"children":[{"type":"text","value":"result"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"await"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"client"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"get"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-9aea1b"},"children":[{"type":"text","value":"\"/\""}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":", {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-03ead4"},"children":[{"type":"text","value":"// params and props here"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" signal: "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"controller"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"current"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"signal"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" });"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"result"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"data"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" }, []);"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-07b026"},"children":[{"type":"text","value":"cancel"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"(() "}]},{"type":"element","tag":"span","props":{"class":"ct-e966be"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"controller"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"current"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"abort"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"();"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-03ead4"},"children":[{"type":"text","value":"// controller should be rewritten or all requests will fail"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"controller"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"current"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"new"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-4cc01b"},"children":[{"type":"text","value":"AbortController"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"();"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" }, ["}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"controller"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"]);"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-8e94e6"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" { "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"get"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":", "}]},{"type":"element","tag":"span","props":{"class":"ct-0da03b"},"children":[{"type":"text","value":"cancel"}]},{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":" };"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-6c6595"},"children":[{"type":"text","value":"};"}]}]}]}]}]},{"type":"element","tag":"style","children":[{"type":"text","value":".ct-03ead4{color:#8B949E}.ct-4cc01b{color:#D2A8FF}.ct-07b026{color:#79C0FF}.ct-e966be{color:#FF7B72}.ct-9aea1b{color:#A5D6FF}.ct-0da03b{color:#C9D1D9}.ct-6c6595{color:#C9D1D9}.ct-8e94e6{color:#FF7B72}.light .ct-8e94e6{color:#859900}.light .ct-6c6595{color:#657B83}.light .ct-0da03b{color:#268BD2}.light .ct-9aea1b{color:#2AA198}.light .ct-e966be{color:#073642}.light .ct-07b026{color:#268BD2}.light .ct-4cc01b{color:#268BD2}.light .ct-03ead4{color:#93A1A1}"}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:Frontend:React:Axios with AbortController.md","_source":"content","_file":"Frontend/React/Axios with AbortController.md","_extension":"md"}