javascript - 如果某个功能不起作用,请在一段时间后停止该功能
问题描述
我有一个允许使用蓝牙连接到外部设备的功能。
有时可能是外部设备关闭或找不到设备的情况,所以我的应用程序在搜索页面上崩溃(它挂在负载上)。我想知道是否有一种方法可以在函数执行 30 秒后发送警报。
async scans() {
//connection...
// if the connection failed the checkCredentials will not execute, so there I should find something to display alert.
this.checkCredentials()
}
我想过一个setTimeout(() => {this.setState({time: true})}, 15000)
但我不确定这是最好的解决方案。
我能怎么做??
解决方案
我相信您应该在启动连接之前先尝试检查设备是否存在。然后作为下一步,您应该处理连接错误。您可以检查连接 API 是否提供了提供超时的方法。如果这一切都不可能,那么只有您应该尝试使用 setTimeout 来处理这个问题,就像您在问题中提到的那样。但是,在这种情况下,您还应该考虑取消连接请求或至少在连接最终失败时处理错误的情况。
推荐阅读
- magento2 - Magento 2 - 管理订单网格,日期过滤器不过滤正确的订单
- c# - 如何从 TwinCat 读取包含结构数组的结构到 C#
- ruby-on-rails - Rails 从一个表单创建多行
- c++ - 如何让 CMake find_library 为构建类型找到正确的库
- java - 如何在android java中的imageview上绘制多个点
- drupal - 如何获取drupal视图更改钩子中的总行数?
- java - 线程没有同时运行以读取文件
- reactjs - React Hooks 和 React-Redux 连接:让它们一起工作的最佳实践是什么?
- javascript - 如何使用自定义文件名在 Javascript 中创建分号分隔的 CSV?
- r - 取三个包含 NA 的变量的平均值,以使用 dplyr 创建新变量