java promise实现,[Java教程]promise的理解和应用

[Java教程]promise的理解和应用

0

2018-09-04 20:00:28

老铁们,我又满血复活了,今天我准备来吹一波我对promise,如有错吴请直接指出,明白了吗?话不多说开始吧

首先我们需要知道啥叫promise,我问了问大佬,他说这个东西是 异步操作的同步代码(but有兼容问题).

下面我来说说我自己对他的理解:

这个小东西吧还是挺可爱的,来,我们了解了解他

1.它是一个构造函数,使用的时候需要用new实例化

2.他有一个参数,这个参数是一个回调函数,这个回调函数里面又有两个参数,第一个为resolve  第二个为 reject   (这里先放一下,我们来上一段代码要不然太抽象了)    new Promise(function(resolve,reject) {             resolve()       }).then(function(){},function(){})      注释:当回调函数里面调用resolve()时,.then会调用第一个函数;当回调函数里面调用reject()时,.then会调用第二个函数                  也可以如下面这样写      new Promise(function(resolve,reject) {               resolve()          }).then(function(){}).cath(function(){})                     注释:这种写法,当回调函数里面调用resolve()时,.then会执行;当回调函数里面调用reject()时,.catch会执行                    大佬们可能发现了,那我的resolve和reject是形参啊,可不可以用别的名字,当然可以的啦,不过要注意和回调函数内部的调用名字统一起来      3.Promise.all(arr).then(function(){})         arr为数组           Now,我们来说一说Promise的非常有用的方法之一  all方法,这个方法作用:当all里面数组里的所有异步操作都执行完毕后再去执行.then();     4.Promise.race(arr).then(function(){})       arr为数组          接下来我们来说一说Promise的另一个方法  race方法,这个方法作用:当race里面数组里的异步操作只要有一个执行完毕后就会去执行.then();          5.我自己体会的作用,如有缺失,请立刻联系我,你给我补充,我给你打钱    Promise作用:    1.解决回调地狱(关于这个地狱问题,我会在随后的随笔中介绍一下)            2.将Ajax获取来的数据和业务逻辑分开                 2.Promise.all()方法可以解决多个Ajax传回的信息再次组合进行查询       告辞,告辞

************************************************又在成为最会说相声的程序员的路上迈出了具有历史性的一步*******************************************************************

本文网址:http://www.shaoqun.com/a/389725.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

Java中,并没有内置的Promise类,但是可以使用一些库或框架来实现Promise的功能。其中一个常用的库是CompletableFuture,它提供了一个强大的异步编程工具,可以用来处理异步任务的完成或失败。 使用CompletableFuture,你可以通过以下步骤创建和使用Promise: 1. 创建一个CompletableFuture对象,可以通过CompletableFuture类的静态方法提供一个初始值,或者使用构造函数创建一个空的CompletableFuture对象。 2. 使用`thenApply()`、`thenAccept()`、`thenRun()`等方法,将回调函数附加到CompletableFuture对象上。这些方法允许你定义在Future完成时要执行的操作。 3. 在合适的时候,通过调用CompletableFuture的`complete()`、`completeExceptionally()`、`cancel()`等方法,将结果或异常传递给CompletableFuture对象。 4. 当你需要等待CompletableFuture的完成时,可以使用`get()`方法阻塞当前线程,直到Future完成并返回结果。你还可以使用`join()`方法等待Future的完成,但不会抛出异常。 总的来说,CompletableFuture提供了一种简洁而灵活的方式来处理异步任务的结果。它允许你链式地组合多个异步操作,并在每个操作完成后执行特定的操作。 是Netty4源码中的一段代码,展示了如何在Promise对象中添加监听器并触发相应的回调函数。 是一个使用Promise的典型例子,在这个例子中,使用Promise来处理异步的AJAX请求。 提到了Java实现Promise模式的另一个类:FutureTask。FutureTask是Java标准库中实现了Future接口的具体类,可以看作是Promise模式的参与者实例。 综上所述,虽然Java中没有内置的Promise类,但是可以使用CompletableFuture等库来实现Promise的功能。这些库提供了一种方便的方式来处理异步任务的完成和失败,并允许你以链式的方式组合多个异步操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值