前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Promise await表达式

Promise await表达式

原创
作者头像
堕落飞鸟
发布2023-05-23 10:46:32
4520
发布2023-05-23 10:46:32
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

await表达式

await表达式用于等待一个Promise对象的解析,并将解析后的结果返回。它可以放在任何返回Promise对象的函数调用前面,包括异步函数调用、Promise链的调用等。在等待期间,async函数会暂停执行,直到Promise对象的状态变为已解析。

以下是await表达式的基本语法:

代码语言:javascript
复制
let result = await promise;

在上述语法中,promise是一个Promise对象,result是解析后的结果。在等待期间,async函数会暂停执行,直到promise对象的状态变为已解析。然后,解析后的结果会被赋值给result变量。

需要注意的是,await只能在async函数内部使用。如果在非async函数中使用await关键字,会导致语法错误。

示例

下面是一个示例,演示了如何使用await表达式等待Promise对象的解析:

代码语言:javascript
复制
function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function fetchData() {
  console.log('Fetching data...');
  await delay(2000); // 模拟异步操作
  console.log('Data fetched!');
  return 'Data'; // 返回数据
}

async function processData() {
  try {
    const data = await fetchData(); // 等待fetchData函数完成
    console.log('Processing data:', data);
    // 其他数据处理逻辑
  } catch (error) {
    console.error('Error occurred:', error);
  }
}

processData();

在上述示例中,我们定义了两个async函数:fetchData()processData()。在fetchData()函数中,我们模拟了一个异步操作,通过await关键字等待2秒钟后,返回一个数据。在processData()函数中,我们调用了fetchData()函数并使用await关键字等待其完成。在try...catch语句块中,我们对可能发生的错误进行捕获和处理。

当我们调用processData()函数时,它会按照顺序执行异步操作。在控制台输出中,我们可以看到执行过程中的日志信息,包括"Fetching data..."、"Data fetched!"以及"Processing data: Data"。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • await表达式
  • 示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档