Await

在C#中的应用

在C#中，await运算符在异步方法任务中使用，用于在方法的执行过程中插入挂起点，直到所等待的任务完成。await仅可用于由async关键字修饰的异步方法中。
以下异步方法用于从一个URL上下载data数据。
public async Task<int> SumPageSizesAsync(IList<Uri> uris) 
{
    int total = 0;
    foreach (var uri in uris) {
        statusText.Text = string.Format("Found {0} bytes ...", total);
        var data = await new WebClient().DownloadDataTaskAsync(uri);
        total += data.Length;
    }
    statusText.Text = string.Format("Found {0} bytes total", total);
    return total;}

在JavaScript中的使用

JavaScript中的await只能在异步方法（async function）中使用，用于等待一个Promise对象。当await接收到一个Promise对象时，await将等待Promise任务正常完成并返回其结果。若await接收到的不是Promise，await会把该其值转换为已正常处理的Promise，然后等待其工作完成。
function resolveAfter2Seconds(x) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(x);
    }, 2000);
  });}async function f1() {
  var x = await resolveAfter2Seconds(10);
  console.log(x); // 输出10}f1();