当前位置: 首页 > article >正文

警告⚠:await has no effect on the type of this expression.

警告翻译后的意思是:在当前表达式前面添加await没意义。 

在现代 JavaScript 开发中,asyncawait 关键字提供了处理异步操作的简洁方式。尽管它们的使用非常普遍,但在某些情况下,开发过程中可能会遇到“await has no effect on the type of this expression”的错误提示。

1.什么是 await

await 是一个操作符,用于等待一个Promise 对象。它只能在 async 函数内部使用。使用 await 可以让异步代码的写法看起来更像同步代码,从而提高可读性。

async function getData() {
  const response = await axios.get('https://api.example.com/data');
  const data = await response.json();
  return data;
}
2.什么是“await has no effect on the type of this expression”?

在一个不返回 Promise 的表达式上使用 await 时, 编译器会抛出“await has no effect on the type of this expression”警告。这意味着 await 在这个上下文中没有实际的效果,因为它所等待的不是一个 Promise。

/**
 * await 被用在一个数字上。由于 5 不是一个 Promise,提示 await 在这里没有效果
 */
async function example() {
  // 一般这仅仅是一个警告,因为await后边也可以跟着其他表达式,比如一个常量表达式
  const result = await 5; 
  console.log(result);
}
3.解决方案

需要确保 await 后面跟的是一个 Promise。以下是一些常见的解决方案:

33.1 确保使用 Promise
async function example() {
  const promise = new Promise((resolve) => setTimeout(() => resolve(5), 1000));
  const result = await promise; // 这里是有效的
  console.log(result); // 输出 5
}
3.2 检查函数返回值

在调用一个函数并使用 await,确保该函数返回的是一个 Promise。

function getNumber() {
  return Promise.resolve(5);
}

async function example() {
  const result = await getNumber(); // 这里是有效的
  console.log(result); // 输出 5
}

“await has no effect on the type of this expression” 警告通常是由于在不返回 Promise 的表达式上使用 await 导致的。通过确保 await 后面跟的是一个 Promise,若不需要等待某个表达式,可以移除 await,有效地避免这一警告。


http://www.kler.cn/a/568741.html

相关文章:

  • Redis 的几个热点知识
  • 6-3-1JIT(即时编译器)
  • 扫描局域网可用端口
  • 服务器BIOS和BMC的基础知识
  • Autosar精华
  • C++数组综合训练:插入删除/进制转换/排序算法
  • 关于JavaScript性能问题的误解
  • 【前端基础】Day 7 CSS高级技巧
  • Linux 学习笔记
  • 数据集笔记:新加坡 地铁(MRT)和轻轨(LRT)票价
  • Flutter_学习记录_实现列表上拉加载更多的功能
  • electron-builder打包时github包下载失败【解决办法】
  • Python与Web3.py库:构建去中心化应用的未来
  • Java对象字段拷贝最佳实践:BeanUtils、Lombok Builder、MapStruct 深度解析(附Demo)
  • 特辣的海藻!7
  • PostgreSQL 生产环境升级指南:pg_upgrade 快速完成版本升级!
  • 入门大模型的学习路线是什么?
  • 十一、Spring Boot:使用JWT实现用户认证深度解析
  • All in One: Multi-Task Prompting for Graph Neural Networks学习笔记
  • 【面试】Java面试频繁问到的题最新整理(附答案)