JS的异步操作函数往往是通过回调函数来实现异步任务的结果处理,在ES6之前如setTimeout函数和异步AJAX编程;
在ES6规范后Promise 类对象使得书写异步任务更加容易,返回Promise 的函数是异步操作的基础,
在ES7中增加了async关键字,async关键字修饰的函数返回值是一个Promise 对象,即该函数是一个异步函数,
在async函数中可以使用await表达式,await 操作符用于等待一个 Promise 对象, 它只能在异步函数 async function 内部使用,
正常情况下,await 命令后面是一个 Promise 对象,它也可以跟其他值,如字符串,布尔值,数值以及普通函数。
这里的await就和c#中的有了明显的差异:
在JS的async函数中,如果await后是一个Promise对象,await 会暂停执行,等待 Promise 对象 resolve,然后恢复 async 函数的执行并返回解析值。
如果await后非 Promise 对象:直接返回对应的值。
也就是说await使得async函数内部是一个同步过程。
而在c#中,await 仅用来修饰一个异步task,可以理解为异步编程的语法规范。
标签:异步,await,函数,c#,JavaScript,Promise,async From: https://www.cnblogs.com/lumingprince/p/16771844.html