00:00
创建新项目。创建新文件。我说下异步data中用future或stream表示异步的对象。大热库有许多返回future或stream对象的函数,这些函数呢是异步,他们在设置可能host时的操作之后返回,而无需等待该操作完成。a think orwa关键字呢,用于支持异步编程,可以使得编写的异步代码看起来类似于同步代码。我们先来说future对象,Future表示异步操作的结果,它有两种状态,一种是未完成状态,也就是当调用异步函数时,它返回未完成的future,并且持续到异步函数操作完成。第二种状态是完成状态,如果异步函数操作成功呢,就要返回一个值。二、异步函数操作失败呢?它将要返回一个错误。我们可以通过构造函数来创建一个future对象。构造函数的参数呢是一个函数,该函数返回值类型呢为future t泛型为T。
01:58
或者T,其中T呢,代表的是任何类型,我们先来定义一个函数。
02:04
然,我们的返回值vint。这里呢,我们生成一个随机数,因此呢,我们导入。数学。我们返回。
03:04
我们返回零到100的之间的随机数,然后呢,我们创建一个feature对象,那么它的类型呢,NT。这里通过各个函数创建一个圈对象,那么它的参数呢?我们将这个函数传递过来。那么future构造函数的参数呢?它的返回值可以是任意类型或者泛型为任意类型的future对象。
04:08
然后呢,我们。打一下的运行。我执行一下。啊,那么可以看到。它返回的地形呢,就是future int这个分析为int的future对象。
05:01
我们也可以将前面的地形去掉CVR,那我们再来打新。那我们再来打印一下啊,那么它仍然是翻行为NT的future对象,我们也可以使用a think关键字呢标记函数,使得函数成为一个异步函数,异步函数会自动将返回值包装成一个future对象,此时呢,我们将这个函数呢标记为异步函数,当标记为异步函数的时候呢啊,函数的返回值必须是future对象。因此呢,这里我们使用。泛型VIP,那么这样呢?怎样了,给他?
06:02
N的函数呢?的返回值呢,就是一个future,对象分析为int。然后在调用的时候呢,我们将这个去掉,直接调用这个函数。然后我们再来打印一下它的运行是类型啊,那么它运行是类型呢,然后是分析为int的future对象,我们可以使用future类提供的。和win complete方法对future对象做进一步的处理。当E操作成功时呢执行扔方法,任方法接受一个参数为异步操作返回值的回调函数。当异步操作失败时呢执行catch error方法,Catch方法接受一个参数为错误对象的回流函数,当异步操作完成时,无论执行失败还是成功,都会执行win complete方法,When complete方法呢接受一个无参的自定义回流函数,我们来看一下。
07:14
这里我们接待一个朋友圈对象。然后呢?我们执行它的方法。这里呢,是一个回调函数。接收一个值,这里是一个回调函数,我们这里使用的是匿名函数。
08:09
那我们打一个字。然后我们呢,曾经开启一轮方法,这里边呢也是一个回调函数,这边我们仍然是采用厘米函数。
09:06
没打一些抽。老们执行when方法。这个方法呢,仍然执行一个一个函数,它接受。没有参数,这里我们直接打印,一步操作完成就可以了,不做其他操作。
10:30
那我们运行一下。嗯。没收心事。异步函数执行成功呢,它会有一个返回值,然后就是异步函数执行完成,这里呢,我们如果在异步函数中呢,抛出一个异常了,我们来看一下。我运行一下。
11:01
那么这里就显示呢,异步函数执行错误,这里呢,我们抛出来一个异常,然后呢,开七函数就捕获到了异常。然后我们打印了异常的信息。最后呢,到完成时呢,那一步函数执行完成,那么也就是说呢,无论异步函数是否成功调用,都会执行when complete方法。成功调用呢,会执行认方法。斯白兰自行开启轮。
我来说两句