java和js的callback 回调函数

大家开发中经常会用到一些别人封装好的的回调函数。实际上他们的回调是这么写的:

js:

       $.ajax({
                    url : settings.url,
                    data: queryparam,
                    type:'post',
                    cache:false,
                    dataType:'json',
                    async:settings.async,
                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
                    success : function(data) {
              //这里也是
if(settings.loadcallback && settings.loadcallback.success) { try{
                 settings.loadcallback.success(data); }
catch(e) { } }
              //加了try后不影响后面代码运行 console.info(data);
              //这里可以同样的再增加一个回调 }, error:
function() {
            //这里 判断这个方法存不存在。如果使用者在调用时使用了该方法,就去执行
if(settings.loadcallback && settings.loadcallback.error) { settings.loadcallback.error(); } msg('加载失败'); } });

java:

private final class Worker implements Runnable
 private void runTask(Runnable task) {
        final ReentrantLock runLock = this.runLock;
        runLock.lock();
        try {
            if (runState < STOP &&
                Thread.interrupted() &&
                runState >= STOP)
            boolean ran = false;
            beforeExecute(thread, task);   //beforeExecute方法是ThreadPoolExecutor类的一个方法,没有具体实现,用户可以根据
            //自己需要重载这个方法和后面的afterExecute方法来进行一些统计信息,比如某个任务的执行时间等           
            try {
                task.run();
                ran = true;
                afterExecute(task, null);
                ++completedTasks;
            } catch (RuntimeException ex) {
                if (!ran)
                    afterExecute(task, ex);
                throw ex;
            }
        } finally {
            runLock.unlock();
        }
    }

猜你喜欢

转载自www.cnblogs.com/kuibuqianli/p/9138924.html