gpt4 book ai didi

GWT 回调实现

转载 作者:行者123 更新时间:2023-12-04 05:27:56 24 4
gpt4 key购买 nike

我正在维护包含一堆用户组的软件。当管理员在组的用户上单击“删除”时,应该会发生两件事:

  • 删除组成员(涉及更新缓存、数据库等)
  • 重新加载组成员列表(用户删除用户时会看到此列表)

  • 事实证明,#2 在 #1 之前完成 - 竞争条件。因此,我想添加一个回调,以便 #2 在 #1 成功之前不会执行。

    GWT 是否可以接受此代码以确保 #2 出现在 #1 之前?
     doTask1();

    GWT.runAsync(new RunAsyncCallback()
    {
    public void onFailure(final Throwable reason)
    {
    }

    public void onSuccess()
    {
    doTask2();
    }
    });

    最佳答案

    GWT#runAsync()用于 GWT 的 "code splitting" feature ,这允许延迟加载代码(和其他运行时资源),直到需要它们。您需要使用 GWT 的异步操作模式(即 AsyncCallbackCommand )将回调传递给 doTask1()一旦那里的异步操作完成,就会调用它。例如,如果 doTask1()执行 GWT RPC方法:

    public void doTask1(final Command onCompletion) {
    myRpcService.doTask1(new AsyncCallback<Void>() {
    @Override
    public void onFailure(Throwable caught) {
    // Error handling
    }

    @Override
    public void onSuccess(Void ignored) {
    onCompletion.execute();
    }
    });
    }

    public void doTask2() {
    // Perform task 2
    }

    public void doTasks1And2() {
    doTask1(new Command() {
    @Override
    public void execute() {
    doTask2();
    }
    });
    }

    关于GWT 回调实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982024/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com