0

我正在使用呈现一些 UI 的第三方库。该 api 有一个回调函数,因此可以在调用第三方库中的下一个 UI 更改之前运行必要的代码。在我的场景中,我执行用户操作(单击按钮),第三方库开始处理该操作,调用回调方法,我触发我的商店正在侦听的操作,然后更新我自己的 UI。

我正在运行的问题是第三方库在更新自己的 UI 之前依赖于我的 UI 更新。在我触发操作后的回调方法中,回调方法在我的商店完成其事件处理程序中的代码之前结束。我希望我的操作在回调方法中触发,并让回调方法等到我自己的 UI 更新完成后再继续。

示例场景代码:

行动

var Actions = Reflux.createActions([
    "updateUI"
]);

店铺

class Store extends Reflux.Store {
    constructor(props) {
        super(props)
        this.listenables = Actions;
    }

    onUpdateUI(){
        //Update the UI
    }
}

零件

class Component extends Reflux.Component{

    handleCallback(){
        Action.updateUI();
        // Wait until UI has updated or wait x amount of time before 
        //returning.
    }

    render(){
        return(
            <ThirdPartyComponent callback = {this.handleCallback} />
        );
    }
}

我已经研究了几种不同的处理方法(Promises、async/await、为操作创建回调),每种方法都有其缺点,但没有一个给出遵循 Reflux 提供的单向流的示例。我很好奇是否有适当的方法来处理这种情况。

4

0 回答 0