异步函数(async)

版权声明:文章系原创,请尊重版权 https://blog.csdn.net/lyz_707/article/details/82079196

在Fabric Tx的执行函数中使用了大量的异步函数async,因此将其内容简单总结一下:

异步函数的概念
异步函数是与同步函数相对的一种函数;
(1)同步函数:具有顺序性,当调用函数的未返回值前不能执行后续行为;
(2)异步函数:无顺序性,调用的函数会立即返回,不影响执行后续的行为,其中调用函数的真实执行情况是在另一个线程中发生;

async function asyncLoadData (url) {
    let dataOne = await loadData (url)
}

上述是一个异步获取数据的方法,且返回一个promise对象;
async 语法
(1)

async function asyncFunction() {
 return 'succeed!' 
 }
 test().then( resolved => console.log(resolved) )

output:
succeed!

asyncFunction会得到一个promise对象,可以添加一个回调函数
通过then来添加回调函数,而其参数就是return的结果;

(2)另外,通过catch,then,try..catch三种方法可以捕捉到函数内部的错误;
(3)await命令
await只能在async函数内使用,否则会报错;

async Function asyncAwait() {
let a = await stepOne()
let b = await stepTwo()
...
}

await是继发执行的,即先执行完stepOne 才会执行stepTwo。这种方法普遍用于后续的执行依赖stepOne的结果时。
(4)有些执行不需要继发执行时,可用await. promiseAll()方法

let [a,b] = await promiseAll.([fun1(),fun2()])

猜你喜欢

转载自blog.csdn.net/lyz_707/article/details/82079196