java promise模式,给Java加入Promiser功能

这是一个Promises/A+规范的Java 8下实现的开源项目Promiser-java.

使用很简单:

创建一个Promiser对象:

Promiser p = new Promiser((Resolver resolve, Rejecter reject) -> {

//异步处理代码放在处理

// Place your asynchronous process here, and make sure

// to trigger resolve.run() or reject.run() when needed.

});

通过下面代码处理异步结果:

p.success((T result) -> {

// Handle success here

})

.error((U err) -> {

// Handle error here

})

案例:

下面异步案例是用延迟500毫秒启动运行任务。

Promiser p = new Promiser((Resolver resolve, Rejecter reject) -> {

int DELAY = 500;

new Timer().schedule(new TimerTask() {

@Override

public void run() {

resolve.run("I'm done !"); //resolving

reject.run(404); //rejecting

}

}, DELAY);

});

你可以使用Promiser的回调函数来处理promise成功与否:

p.success((String result) -> {

// Handle success here

})

.error((Integer err) -> {

// Handle failure here

})

很显然,你的Java 8异步代码具有了Javascript的味道,当然,处理异步的Future方法最高境界是Monad。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值