00:00
把我们的文档操作已经完成了,那么我们之前所采用的这些同步客户端的操作呀,咱们就演示到这里了,接下来我们准备给大家演示一下异步客户端的操作啊,咱们看看异步是怎么回事,咱们的private static VO啊,咱们的异步。好,把这个东西啊,我们去掉,我们写上它,我们叫做我们的operation啊operation OK,我们throws exception,好放过来,放过来以后,我把这个东西我放到这里,咱们写上它叫异步操作,然后把这个放到这,我们演示异步操作呢,不会演示的太复杂啊,我们就演示最基本的操作,所以我们需要使用异步的客户端,把这个拿过来,然后点一下它,其实里面也有我们之前所讲的那些方法,比方说我们的索引客户端。然后呢,我们打一下叫做对吧,诶这个时候其实我们就可以完全去创建我们新的索引了,A,我写个request,然后request点你会发现跟之前是完全一样的,我写上叫new index,我创建一个新的索引就可以了,对不对,OK,我放到这里,但是同学们有问题。
01:13
有什么问题呢?你创建完成以后,我怎么知道我的结果是成功还是失败呢?因为它是一个异步的操作,这就意味着我们在执行后续的代码过程当中,我们是两个不同的线程,所以我们说一下,咱们叫主线程代码,我们来主线程我们的代码。点点点,那么这个呢,是我们的主线程代码对吧,那么我们这个是异步访问,说的简单点,它们是两个线程,那我怎么知道这个线程当中的创建是成功的呢?我并不清楚,所以啊,我们的异步客户端呢,它是需要回调方法的,我们这里应该有一个点,咱们叫做当它完成的时候,我该怎么怎么做。
02:00
它有两个参数。会返回这两个参数,一个是什么呢?我们的响应结果我们叫response,还有一个叫做A。什么叫做arrow呢?就是错误。我们这里写上它,哎,我们打一,咱们写上叫回调方法,所谓的回调方法就意味着当我执行完,我们就会回来调这个方法就这么简单,这么理解就够了啊,那行,那么我们来看一看我们的回调方法当中,我就要判断一下,看看你的响应对象它有没有,咱们叫response,它等不等于空,如果它不等于空,说明我们当前的响应是没有问题的,所以我们的response点我们有一个应答。如果你要为空,那就说明我们应该是发生了问题了,那我们打印我们的错误信息就可以了,所以我们点一下咱们叫print,这样的话我们的错误信息就会被打印出来。那就是我们的异步操作,所以我们现在点击右键,我们试一试。
03:01
点击右键以后,我们再来看一看对吧?嗯。同学们有没有发现我们的回调方法和我们的数在最后已经打印出来了,说明我们的索引创建成功,但是有没有发现我们主线程代码你没看见,你没看见的原因是因为当我执行创建的时候,它就已经执行完了,所以说你要往前,往前你看见我们这个地方没有来咱们找一下,哎,在我们前面吧,这么多啊,好。大家看到看见没有,在这个地方有一个主线程代码,后面是我创建的过程,所以是两条不同的分支,两条不同的线程,诶你做你的,我做我的,这个跟咱们之前就不太一样了,哎呀,那有个问题啊,那你的这个地方如果我执行完以后,我还想做点别的怎么办?我不想马上去完成怎么办?所以这个代码呢,可能需要再去什么呢?改善一下,什么叫改善一下呢?就意味着我们的在我们这个点的这个位置,我们去点,然后呢,它有一个这个方法,这个方法所表述的含义就是说当你完成了这一步之后,你后面该怎么去做,它有这么一个概念,那么这个结果呢,我们提示一下,你会发现它是一个我们的response叫响应,所以呢,我们的response我们写个箭头,那么这个response呢,我们点一下叫获取它的响应结果。
04:27
那我把这个结果就往后传,被这个时候有一个地方有变化了,什么地方有变化了呢?因为你在这一步当中拿到了结果,所以我们的这个地方所拿到的其实就已经是它的结果了,就不再是一个对象了。所以啊,我们这个里面你直接用它其实就可以。我们如果没有这句话的话,他会把我响应的结果直接传给他,但是如果有这句话的话,就说明你对你的响应已经做了处理了,他把处理的结果再给他,所以他已经是一个布尔值了,那我们这里可以直接去判断是没有问题的,你这么写也是完全可行的啊,所以这个会稍微的有点麻烦,这个大家注意就可以了啊,所以异步操作跟同步的区别一定要明白,是多线程的区别,好吧,那我们这儿就先介绍到这里。
我来说两句