00:00
哈喽,嗯,咱们这个视频呢,主要是给大家去阐述一下,哎在鸿蒙当中的哎异步并发操作。啊,首先呢,我们一定要明白懂懂什么是异步。其实说白了怎么着什么,什么是一步,其实说白了就是不必等待上一个的一个执行结果,哎,我们就可以继续执行下一个操作,对吧,相对于同步而言呢,异步操作可以同时处理。哎,多个任务,而不会因为一个任务的耗时而影响到其他任务的执行,从而而提高了我们程序的一个并发处理能力,其实在我们实际的开发中啊,特别是哎应用启动,哎初始化的时候,对吧,我们为了不阻塞程序,那么异步的初始化往往是开发中的首选。那么在鸿蒙当中,哎我们哎如何进行那个异步的并发操作呢?其实哎我们可以使用系统,哎给我们提供的2。
01:05
A thing以及wait来就可以轻松的搞定。行,嗯,那咱们,嗯,咱们简单还是通过案例吧,对吧,通过案例,然后咱们去,呃,简单的去实际去操作一下好吧,OK, 呃,很简单的一个页面对吧,我们给他。给他写一个是but。对吧,还有一个点击。嗯,给他处理一个点击事件。嗯,C.OK.嗯,在这个点击的时候啊,我们出我们去,呃执行一个异步操作,当然了,我们把这个异步操作,呃,说成一个方法吧。
02:00
给答案交一个get kindverity就是获取一条消息。嗯,当然会有几条消息呢啊,我们让它返回一个什么返回一个。嗯。让他放心。我们直接返回一个命。OK, 那么在这里面呢啊,我们就可以去执行了,哎,去拗一个对吧,拗一个我们的一个啊。Returning a uponco.嗯,它它里面去接收了一个。Restored.方式。
03:02
OK, 然后我们在这里面去简单的去做一个,呃,延时操作三个开方了。延时1秒吧。啊,延迟1秒之后呢,我们主要是in。啊,一条数据。1秒。哎。之后。发音同样呢,哎,我们需要把我们这个方法给返回,哎。返回过去。Right so.OK, 当然了,我们也可以在这里面进行打印啊,也可以怎么着把这个打印信息给抛抛的,如果说你呃不需要访问值呢,那我们就可以,其实就可以是不要这个返问值,如果说呃,如果说你要这个返问值的话,那我们直接就可以啊,就接收了一个方格式,其实就是接受了一个呃返回的一个参数,哎,我们直接把这个参数也给他反馈过去。
04:07
就不在这里打印了,就是你哪里打印,哎,你就嗯哪里掉我的时候,哎,我给你反应过去,你直接打印就行了,OK, 我们在点击的时候呢,很简单,点击的时候我们直接去打印一个。打印一个常见的数据吧。调用对吧,之前。哎呀,然后呢。我们调我们的刚才的get message方法对吧。可以通过问。获取到我们的一个结果值。它是一个。伪造的结果对吧,我们就可以把我们这个结果给打印出来。
05:03
其实这个结果呢,嗯,刚才已经说了,对吧,我们可以在这里打印,也可以把这个结果给返回过去,对吧,把这个信息OK,然后我们再。在他之后呢?然后再去写一个调用之后的。来,我们去运行一下。按照正常的一个异步操作啊,肯定怎么着先调用啊啊对吧,调用之前打印,然后再调用之后打印,然后再调用啊一秒之后打印,因为它是一个异步的一个操作,它并不会阻塞,哎下面的一个程序来看看我它是不是按照这样一个流程去走的。我们去玩一下。哎,是的对吧,先调用什么,哎,调用之前,然后呢,又调用了,又又直接去,呃,执行了这一个对吧。
06:06
嗯,因为哎,Get message它是一个异步的一个操作,对吧,因为它是耗时的,所以说它并不会哎阻塞哎下面的程序,那么这就是一个简单的一个啊。一个异步操作,那么我们这个异步操作是怎么去实现的呢?哎,通过什么对吧,那么我们就要去了解一下对吧,什么是哎promise,那首先呢,呃,Promise它是一种呢,处于呃会理那个异步操作的一个对象啊,并且提供了一个什么哎状态机制来管理啊异步操作的一个不同阶段,也就是说啊,使用我们这个I promise对吧,它有两个特点,第一个特点呢,它可以结合对吧,A thing.为对吧,将异步操作转化成类似于我们哎同步操作的一个风格,第二个特点就是哎正常的异步操作呢,哎我们嗯可以使用回调,使用回调函数对吧,来获取我们的一个结果值,当然了它也有什么。
07:11
如果说是错误,也有一个。对吧。嗯,首先呢是promise,它提供了一个三种的一个状态呢,呃,这三种状态呢,就是哎,进行中的状态,已完成的状态,还有是啊已拒绝的一个状态,那么正常的一个使用方式呢,嗯。就是通过这种首先在对吧获取结果。然后呢?你要是失败。还有一个什么,哎。开吃。他就会发霉的。L, 那么。这个IO呢,它是一个。Business at.
08:03
这就是啊。答,没错。这就是一个返回错误,嗯,这就是一个,这就是我们异步的一个正常的一个返回啊,返回一个结果,刚才也也也已经说了,对吧,对吧,Promise对吧,除了异步的可以给我们返回,呃,通过Z的这种调式给我们返回成功失败,那么同样的。它也可以结合什么a think ofwa, 然后进行使用,对吧,这一个使用哎。它就可以,呃,让我们让让让我们运用哎异异步的一个操作手法,实现我们同步的,哎一个逻辑,哎我们呃,我们用那个森维塔,然后去实现它一下。原来我们用用Z1补偿,我们需要通过哎认。
09:01
拿到我们的一个结果值对吧,那么这里我这里呢啊,我们就不需要我们直接怎么着。去能改一下。那么他既然等待的话,那肯定啊,整个方法都去执行一个同步数,OK.然后呢,我们把这个结果值很好。看一看这种实现方式,哎,会和我们的呃,异步操作有什么区别呢?来咱们继续一下。哎,发现什么发现和之前的什么调用逻辑啊。对吧,是不一样的,哎,之前我们还使用异步操作,使用Z的手法,哎,它不会阻塞后面的线程啊,后面的程序也就是不会阻塞哎这一行的代码等,但是呢,我当我们使用偶away的等待之后,哎。
10:08
他必须等待它执行完之后再去执行后面的程序,也就是刚才我们说的对吧,Promise结合对吧,A thing it, 所以让我们用异步的操作实现我们同步的机制。这就是一个。哎,红木的一个。机制也就是但是呢,我们需要有一点需要注意的时候,我们再结合对吧a think对吧,Wa进行使用的时候,有一点需要注意,就是away的关键字啊。必须要结合我森这个关键字。如果说你不结合,哎,他会给我们报错。对吧,所以说它两它两个呢,嗯,是可以进行使用的,缺一是不可的,对吧?嗯,其实有一个问题我们需要知道,就是异步的时候,哎,我们刚才用使用Z,它有一个开始可以拿到错误,但是你这个同步如果发生错误怎么办呢?
11:09
哎,同步发生错误,你可以用try catch进行串去。完了,我们把这个。不放进去。那同步我们如果拿到错误呢?只能通过try catch来拿到错误。好,这就是咱们这个视频给大家所讲述的一个异步并发操作啊,其实主要是运用到了鸿蒙当中的一个是promise这个对象,然后又结合了s away的关键字,然后我们是使用那个异步的操作,实验我们同步的一个机制,行,那咱们这个视频先到这里,感谢大家,谢谢。
我来说两句