异步函数(async)

  • Post author:
  • Post category:其他


在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()])



版权声明:本文为lyz_707原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。