how to cancel an axios call after some specific time











up vote
0
down vote

favorite












I'm using React, Redux, Axios, and Thunk. In a redux-action the app makes a GET call to receive data but I need to cancel it or asked users to see if they want to cancel it after let's say 10 seconds. I read about Axios cancelation but don't know how to use it with the time manner.










share|improve this question






















  • @CupofJava could you show me some of the codings and post it as an answer? thanks indeed
    – farm command
    Nov 19 at 22:11















up vote
0
down vote

favorite












I'm using React, Redux, Axios, and Thunk. In a redux-action the app makes a GET call to receive data but I need to cancel it or asked users to see if they want to cancel it after let's say 10 seconds. I read about Axios cancelation but don't know how to use it with the time manner.










share|improve this question






















  • @CupofJava could you show me some of the codings and post it as an answer? thanks indeed
    – farm command
    Nov 19 at 22:11













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I'm using React, Redux, Axios, and Thunk. In a redux-action the app makes a GET call to receive data but I need to cancel it or asked users to see if they want to cancel it after let's say 10 seconds. I read about Axios cancelation but don't know how to use it with the time manner.










share|improve this question













I'm using React, Redux, Axios, and Thunk. In a redux-action the app makes a GET call to receive data but I need to cancel it or asked users to see if they want to cancel it after let's say 10 seconds. I read about Axios cancelation but don't know how to use it with the time manner.







reactjs redux redux-thunk






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 at 21:59









farm command

6518




6518












  • @CupofJava could you show me some of the codings and post it as an answer? thanks indeed
    – farm command
    Nov 19 at 22:11


















  • @CupofJava could you show me some of the codings and post it as an answer? thanks indeed
    – farm command
    Nov 19 at 22:11
















@CupofJava could you show me some of the codings and post it as an answer? thanks indeed
– farm command
Nov 19 at 22:11




@CupofJava could you show me some of the codings and post it as an answer? thanks indeed
– farm command
Nov 19 at 22:11












2 Answers
2






active

oldest

votes

















up vote
0
down vote













//this statement your axious get

state = {data: };
componentWillMount(){
axios.get('https://yourwebsite.com')
.then(Response => this.setState({ data: Response.data}));
}

//this statement for your setTimeout() function

setTimeout(() => {
if(callPromise.isResolved()){
data.cancel('Canceled');
}
}, 15000)


Then you need data.setTimeout() funtion.



Maybe it will help you!






share|improve this answer























  • that .setTimeout() i sthe patr that i don't know where/how to use it. would you please add more info to your answr, thanks
    – farm command
    Nov 19 at 22:21


















up vote
0
down vote













Via the documentation from Axios, we can incorporate setTimeout that checks the promise status of what we want to cancel



EDIT: It appears there is no standard to check whether a promise has been resolved or not, so you may be able to do something like this:



Where we can check to see if the promise is defined or not



const CancelToken = axios.CancelToken;
const source = CancelToken.source();

axios.get('/user/12345', {
cancelToken: source.token
}).catch(function (thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
// handle error
}
});

const callPromise = axios.post('/user/12345', {
name: 'new name'
}, {
cancelToken: source.token
})

// cancel the request by checking the promise
setTimeout(() => {
if(!callPromise){
source.cancel('Operation canceled by the user.');
}
}, 10000)


We can also set an external variable that will be set when the promise is resolved



const CancelToken = axios.CancelToken;
const source = CancelToken.source();

let isResolved = false;

axios.post('/user/12345', {
name: 'new name'
}, {
cancelToken: source.token
}).then(res => {
isResolved = true;
})

// cancel the request by checking the promise
setTimeout(() => {
if(!isResolved){
source.cancel('Operation canceled by the user.');
}
}, 10000)





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53383238%2fhow-to-cancel-an-axios-call-after-some-specific-time%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote













    //this statement your axious get

    state = {data: };
    componentWillMount(){
    axios.get('https://yourwebsite.com')
    .then(Response => this.setState({ data: Response.data}));
    }

    //this statement for your setTimeout() function

    setTimeout(() => {
    if(callPromise.isResolved()){
    data.cancel('Canceled');
    }
    }, 15000)


    Then you need data.setTimeout() funtion.



    Maybe it will help you!






    share|improve this answer























    • that .setTimeout() i sthe patr that i don't know where/how to use it. would you please add more info to your answr, thanks
      – farm command
      Nov 19 at 22:21















    up vote
    0
    down vote













    //this statement your axious get

    state = {data: };
    componentWillMount(){
    axios.get('https://yourwebsite.com')
    .then(Response => this.setState({ data: Response.data}));
    }

    //this statement for your setTimeout() function

    setTimeout(() => {
    if(callPromise.isResolved()){
    data.cancel('Canceled');
    }
    }, 15000)


    Then you need data.setTimeout() funtion.



    Maybe it will help you!






    share|improve this answer























    • that .setTimeout() i sthe patr that i don't know where/how to use it. would you please add more info to your answr, thanks
      – farm command
      Nov 19 at 22:21













    up vote
    0
    down vote










    up vote
    0
    down vote









    //this statement your axious get

    state = {data: };
    componentWillMount(){
    axios.get('https://yourwebsite.com')
    .then(Response => this.setState({ data: Response.data}));
    }

    //this statement for your setTimeout() function

    setTimeout(() => {
    if(callPromise.isResolved()){
    data.cancel('Canceled');
    }
    }, 15000)


    Then you need data.setTimeout() funtion.



    Maybe it will help you!






    share|improve this answer














    //this statement your axious get

    state = {data: };
    componentWillMount(){
    axios.get('https://yourwebsite.com')
    .then(Response => this.setState({ data: Response.data}));
    }

    //this statement for your setTimeout() function

    setTimeout(() => {
    if(callPromise.isResolved()){
    data.cancel('Canceled');
    }
    }, 15000)


    Then you need data.setTimeout() funtion.



    Maybe it will help you!







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 19 at 22:26

























    answered Nov 19 at 22:17









    Kaan Karamanoğlu

    133




    133












    • that .setTimeout() i sthe patr that i don't know where/how to use it. would you please add more info to your answr, thanks
      – farm command
      Nov 19 at 22:21


















    • that .setTimeout() i sthe patr that i don't know where/how to use it. would you please add more info to your answr, thanks
      – farm command
      Nov 19 at 22:21
















    that .setTimeout() i sthe patr that i don't know where/how to use it. would you please add more info to your answr, thanks
    – farm command
    Nov 19 at 22:21




    that .setTimeout() i sthe patr that i don't know where/how to use it. would you please add more info to your answr, thanks
    – farm command
    Nov 19 at 22:21












    up vote
    0
    down vote













    Via the documentation from Axios, we can incorporate setTimeout that checks the promise status of what we want to cancel



    EDIT: It appears there is no standard to check whether a promise has been resolved or not, so you may be able to do something like this:



    Where we can check to see if the promise is defined or not



    const CancelToken = axios.CancelToken;
    const source = CancelToken.source();

    axios.get('/user/12345', {
    cancelToken: source.token
    }).catch(function (thrown) {
    if (axios.isCancel(thrown)) {
    console.log('Request canceled', thrown.message);
    } else {
    // handle error
    }
    });

    const callPromise = axios.post('/user/12345', {
    name: 'new name'
    }, {
    cancelToken: source.token
    })

    // cancel the request by checking the promise
    setTimeout(() => {
    if(!callPromise){
    source.cancel('Operation canceled by the user.');
    }
    }, 10000)


    We can also set an external variable that will be set when the promise is resolved



    const CancelToken = axios.CancelToken;
    const source = CancelToken.source();

    let isResolved = false;

    axios.post('/user/12345', {
    name: 'new name'
    }, {
    cancelToken: source.token
    }).then(res => {
    isResolved = true;
    })

    // cancel the request by checking the promise
    setTimeout(() => {
    if(!isResolved){
    source.cancel('Operation canceled by the user.');
    }
    }, 10000)





    share|improve this answer



























      up vote
      0
      down vote













      Via the documentation from Axios, we can incorporate setTimeout that checks the promise status of what we want to cancel



      EDIT: It appears there is no standard to check whether a promise has been resolved or not, so you may be able to do something like this:



      Where we can check to see if the promise is defined or not



      const CancelToken = axios.CancelToken;
      const source = CancelToken.source();

      axios.get('/user/12345', {
      cancelToken: source.token
      }).catch(function (thrown) {
      if (axios.isCancel(thrown)) {
      console.log('Request canceled', thrown.message);
      } else {
      // handle error
      }
      });

      const callPromise = axios.post('/user/12345', {
      name: 'new name'
      }, {
      cancelToken: source.token
      })

      // cancel the request by checking the promise
      setTimeout(() => {
      if(!callPromise){
      source.cancel('Operation canceled by the user.');
      }
      }, 10000)


      We can also set an external variable that will be set when the promise is resolved



      const CancelToken = axios.CancelToken;
      const source = CancelToken.source();

      let isResolved = false;

      axios.post('/user/12345', {
      name: 'new name'
      }, {
      cancelToken: source.token
      }).then(res => {
      isResolved = true;
      })

      // cancel the request by checking the promise
      setTimeout(() => {
      if(!isResolved){
      source.cancel('Operation canceled by the user.');
      }
      }, 10000)





      share|improve this answer

























        up vote
        0
        down vote










        up vote
        0
        down vote









        Via the documentation from Axios, we can incorporate setTimeout that checks the promise status of what we want to cancel



        EDIT: It appears there is no standard to check whether a promise has been resolved or not, so you may be able to do something like this:



        Where we can check to see if the promise is defined or not



        const CancelToken = axios.CancelToken;
        const source = CancelToken.source();

        axios.get('/user/12345', {
        cancelToken: source.token
        }).catch(function (thrown) {
        if (axios.isCancel(thrown)) {
        console.log('Request canceled', thrown.message);
        } else {
        // handle error
        }
        });

        const callPromise = axios.post('/user/12345', {
        name: 'new name'
        }, {
        cancelToken: source.token
        })

        // cancel the request by checking the promise
        setTimeout(() => {
        if(!callPromise){
        source.cancel('Operation canceled by the user.');
        }
        }, 10000)


        We can also set an external variable that will be set when the promise is resolved



        const CancelToken = axios.CancelToken;
        const source = CancelToken.source();

        let isResolved = false;

        axios.post('/user/12345', {
        name: 'new name'
        }, {
        cancelToken: source.token
        }).then(res => {
        isResolved = true;
        })

        // cancel the request by checking the promise
        setTimeout(() => {
        if(!isResolved){
        source.cancel('Operation canceled by the user.');
        }
        }, 10000)





        share|improve this answer














        Via the documentation from Axios, we can incorporate setTimeout that checks the promise status of what we want to cancel



        EDIT: It appears there is no standard to check whether a promise has been resolved or not, so you may be able to do something like this:



        Where we can check to see if the promise is defined or not



        const CancelToken = axios.CancelToken;
        const source = CancelToken.source();

        axios.get('/user/12345', {
        cancelToken: source.token
        }).catch(function (thrown) {
        if (axios.isCancel(thrown)) {
        console.log('Request canceled', thrown.message);
        } else {
        // handle error
        }
        });

        const callPromise = axios.post('/user/12345', {
        name: 'new name'
        }, {
        cancelToken: source.token
        })

        // cancel the request by checking the promise
        setTimeout(() => {
        if(!callPromise){
        source.cancel('Operation canceled by the user.');
        }
        }, 10000)


        We can also set an external variable that will be set when the promise is resolved



        const CancelToken = axios.CancelToken;
        const source = CancelToken.source();

        let isResolved = false;

        axios.post('/user/12345', {
        name: 'new name'
        }, {
        cancelToken: source.token
        }).then(res => {
        isResolved = true;
        })

        // cancel the request by checking the promise
        setTimeout(() => {
        if(!isResolved){
        source.cancel('Operation canceled by the user.');
        }
        }, 10000)






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 19 at 22:29

























        answered Nov 19 at 22:16









        Cup of Java

        62021028




        62021028






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53383238%2fhow-to-cancel-an-axios-call-after-some-specific-time%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Wiesbaden

            Marschland

            Dieringhausen