在收到回调后,reactjs会连续调用一个函数

时间:2016-07-20 07:46:23

标签: javascript reactjs

我有一个反应组件,如:

class BodyContent extends Component {

    componentDidMount() {
       const { actions } = this.props

        var timerID = setInterval(function() {
            actions.upload_image()
        }, 5000)


    }

我的upload_image函数包含post request到api。收到响应后,我希望它再次调用该函数。

我想只在我的upload_image成功完成后才调用该函数。

我能做到这一点吗?

2 个答案:

答案 0 :(得分:1)

我认为你的upload_image函数可以返回一个Promise。

如果履行承诺,您可以再次调用upload_image函数

class BodyContent extends Component {

  componentDidMount() {
   const { actions } = this.props

   function call_upload_image_continiously() {
       actions.upload_image().then(call_upload_image_continiously);
   }

   call_upload_image_continiously();
}

答案 1 :(得分:0)

您可以让自己的upload_image功能自行调用。请注意,您实际上不会有setTimeout

var actions = {
    uploadImage() {
        setTimeout(() => {
            console.log('Image has uploaded! Will go again now.');
            actions.uploadImage();
        }, 1000); // setTimeout just to simulate ansynchronousness
    }
}

actions.uploadImage();

jsbin:https://jsbin.com/hefaqu/1/edit?js,console