美文网首页
回调的简单应用

回调的简单应用

作者: 溪水散人 | 来源:发表于2020-08-30 16:28 被阅读0次

什么时候要用到回调呢?在笔者的工作场景中:调用第三方的API发推送,耗时需要200ms-500ms作用(网路问题),调用对方API后,会返回一个调用结果给你,我们利用这个回调结果进行数据的更新

一个简单的回调helloworld

  • 回调接口
public interface CallBackInterface {
    /**
     * 回调接口返回东西
     * @param rtResult
     */
    void reSomething(RtResult rtResult);
}
  • Handler
public class ToDoHandler {
     private static final Logger log = LoggerFactory.getLogger(ToDoHandler.class);
    public void handleSomething(NeedProcess process, CallBackInterface callBackInterface) {
        String name = process.getName();
        log.info("handler 处理是事情");
        RtResult rtResult = new RtResult(name);
        callBackInterface.reSomething(rtResult);
    };
}
  • 客户端
public class MyClient {
    private static final Logger log = LoggerFactory.getLogger(MyClient.class);
    public static ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 2, 1000, TimeUnit.MINUTES, new LinkedBlockingDeque<>(), Executors.defaultThreadFactory(), new ThreadPoolExecutor.DiscardPolicy());

    public static void main(String[] args) {
        NeedProcess needProcess = new NeedProcess();
        needProcess.setName("Lucy");
        executor.execute(() -> dos(needProcess));
    }

    public static void dos(NeedProcess needProcess) {
        ToDoHandler handler = new ToDoHandler();
        handler.handleSomething(needProcess, new CallBackInterface() {
            @Override
            public void reSomething(RtResult rtResult) {
                log.info("回调处理事情" + rtResult.getResult());
            }
        });
    }
}
  • 执行结果
[pool-1-thread-1] INFO com.hx.learn.async.realasync.ToDoHandler - handler 处理是事情
[pool-1-thread-1] INFO com.hx.learn.async.realasync.MyClient - 回调处理事情Lucy

主要逻辑

  • 写一个处理器,回调对象调用回调的抽象处理方法
  • 客户端调用处理器的处理方法,传入具体的回调方法

相关文章

  • 回调的简单应用

    什么时候要用到回调呢?在笔者的工作场景中:调用第三方的API发推送,耗时需要200ms-500ms作用(网路问题)...

  • 两个标题的跑马灯第三篇,类似支付宝口碑的封装

    回调 简单使用

  • apply和call语句

    运动框架的应用实例 结合 异步和回调函数 中的 「回调函数2」我们可以试图在回调函数中,用this表示oDiv对象...

  • 回调函数的应用

    vscode插件live server 起浏览器 通过localhostcode runner 可以运行部分代码 ...

  • 回调,同步异步

    nodejs学习笔记 标签:node 异步 回调 单线程 1. callback 最简单的回调 注意回调的理解:...

  • 回调函数

    1.简单的回调 2. 回调取值 3. 回调传值与取值

  • Callback、Promise、async/await

    一、Callback回调函数例子: callback函数应用举例: 就是通过callback回调函数来传回数据 缺...

  • block简单回调

    例如一个cell上的点击事件,通过block回调给控制器处理 cell头文件: cell实现文件 block回调给...

  • 简单block回调

    block回调 情景:viewController2给viewController1传值,将viewControl...

  • node.js面试问题

    什么是 error-first 回调模式? 应用 error-first 回调模式是为了更好的进行错误和数据的传递...

网友评论

      本文标题:回调的简单应用

      本文链接:https://www.haomeiwen.com/subject/fpsesktx.html