等待代码运行,然后继续执行程序

时间:2018-09-07 08:02:49

标签: javascript react-native

在react native中,我有这两行代码:

this._animateContent('contentPos', -700);
this._callOnSwipe();

我想在执行第二行之前等待第一行完成。有办法吗?

这是功能

_animateContent: function _animateContent(state, endValue) {
    this.tweenState(state, {
      easing: _reactTweenState2.default.easingTypes.easeInOutQuad,
      duration: 400,
      endValue: -600
    });
  },

3 个答案:

答案 0 :(得分:1)

the documentation for react-tween-state

  

onEnd:动画制作完成后触发的回调。

将代码放入onEnd函数中。

答案 1 :(得分:0)

在此React Tween State文档中,您可以使用onEnd: endCallback的配置来运行_callOnSwipe函数。

var this_parent = this;
this._animateContent('contentPos', -700 , function(){this_parent._callOnSwipe()});
_animateContent: function _animateContent(state, endValue, EndFunction) {
    this.tweenState(state, {
    easing: _reactTweenState2.default.easingTypes.easeInOutQuad,
    duration: 400,
    endValue: -600,
    onEnd: EndFunction
  });
},

答案 2 :(得分:0)

我认为您需要tweenState,以便最终给您回调或Promise,以便可以将回调设置为this._callOnSwipe()。

不确定tweenState是什么意思, 但是我想这就是https://github.com/chenglou/react-tween-state,正如我刚从Google搜索到的那样。

它支持回调的onEnd属性,示例代码如下所示。

_animateContent: function _animateContent(state, endValue, callback) { this.tweenState(state, { easing: _reactTweenState2.default.easingTypes.easeInOutQuad, duration: 400, endValue: -600, onEnd: callback }); }, 然后您可以致电

var self = this; this._animateContent('contentPos', -700, function() { self._callOnSwipe() });

希望有帮助。