Solon v2.7.6

Web 异步开发(响应式的基础)

</> markdown

异步 Web 开发时,原有的一些拦截机制(AOP)可能会失效。使用时要注意:

使用原生异步接口

只做为技术原理展示的角度,随便看下。不建议直接使用

@Controller
public class DemoController {
    @Mapping("demo")
    public void demo(Context ctx, String name) {
        //开始异步
        ctx.asyncStart();
        RunUtil.async(() -> {
            try {
                demoDo(ctx, name);
            } finally {
                //结束异步(这个确保要执行)
                try {
                    ctx.asyncComplete();
                } catch (Throwable e) {
                    EventBus.pushTry(e);
                }
            }
        });
    }

    private void demoDo(Context ctx, String name) {
        ctx.output("Hello " + name)
    }
}