Await是什么用法

await 是一个用在异步函数(async function)内部的关键字,它用于等待一个 Promise 完成并返回它的结果。当在异步函数中使用 await 时,函数的执行将会暂停,直到 Promise 完成,然后继续执行并返回结果。

以下是 await 的基本用法:

1. 基本用法

async function fetchData() {
    
    
  let response = await fetch('https://api.example.com/data');
  let data = await response.json();
  return data;
}

fetchData().then(data => {
    
    
  console.log(data);
});

在上面的例子中,fetchData 函数是异步的,并在其中使用了 await 关键字两次。首先,它等待从网址获取数据,然后再等待将响应解析为JSON。

2. 使用try/catch处理错误

当使用 await 时,如果 Promise 被拒绝(即发生错误),则会抛出一个错误。因此,常见的做法是使用 try/catch 语句来处理这些错误:

async function fetchData() {
    
    
  try {
    
    
    let response = await fetch('https://api.example.com/data');
    let data = await response.json();
    return data;
  } catch (error) {
    
    
    console.error("An error occurred:", error);
    throw error; // You can re-throw the error if you want to handle it elsewhere
  }
}

3. await 和非Promise

虽然 await 主要用于 Promise,但它也可以用于非 Promise 值。在这种情况下,它只是返回值本身:

async function returnNumber() {
    
    
  let number = await 123;
  return number;
}

returnNumber().then(value => {
    
    
  console.log(value);  // Outputs: 123
});

注意事项:

  • await 只能在 async function 中使用。在常规函数或全局作用域中尝试使用它会导致语法错误。
  • 使用 await 会使函数暂停执行,但不会阻塞整个JavaScript事件循环。其他操作和事件仍然可以在背景中执行。
  • 由于 await 暂停函数执行,因此需要考虑在哪里使用它,以避免不必要的性能问题。例如,如果有多个独立的异步操作,可能更好地并行执行它们,而不是按顺序等待每一个完成。

总之,await 提供了一种直观、易读的方法来处理异步操作,使得异步代码看起来更像传统的同步代码。

猜你喜欢

转载自blog.csdn.net/m0_57236802/article/details/132338423
今日推荐