繁体   English   中英

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

[英]Calling a function only when another function finishes running in React

我有一个遵循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

如果您遵循通量模式,那么我假设这些服务具有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>
        );
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM