仅在另一个函数在React中运行时调用函数

时间:2016-01-07 00:46:06

标签: javascript reactjs flux reactjs-flux

我有一个跟随Flux数据模式的函数,我称之为

UserService.createNewUser(data);

一旦创建用户的这个函数执行完毕,我想运行另一个遵循相同数据模式的函数:

NextService.createNewMessage(data);

如何进行设置,以便只有在UserService完成运行后才会调用NextService

用户商店:

getUser: function() {
    return User;
  },
addChangeListener: function(callback) {
    this.on(CHANGE_EVENT, callback);
  },
  removeChangeListener: function(callback) {
    this.removeListener(CHANGE_EVENT, callback);
  }

听完改变后,我打电话给:

if (UserStore.getUser()) {
// in here is where I run NextService.createNewMessage(data); 
}

然而,在createNewUser完成之前调用UserStore

1 个答案:

答案 0 :(得分:0)

如果您正在关注磁通模式,那么我假设这些服务具有addChangeListener函数?如果是这样,我建议在组件中添加一个更改侦听器,例如调用NextService:

class YourComponent extends React.Component{
    constructor(props){
        super(props);
        this._handleStoreChange = this.handleStoreChange.bind(this);
    }
    handleStoreChange(data){
        NextService.createNewMessage(data);
    }
    componentDidMount(){
        UserService.addChangeListener(this._handleStoreChange);
    }
    componentWillUnmount(){
        UserService.removeChangeListener(this._handleStoreChange);
    }
    render(){
        return (
            <h1>hello</h1>
        );
    }
}