我具有允许使用蓝牙连接到外部设备的功能。
有时可能是外部设备关闭或找不到该设备的情况, 因此我的应用在搜索页面上崩溃了(它挂在了负载上)。我想知道是否有一种方法可以在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)
但我不确定这是最佳解决方案。
我该怎么办?
答案 0 :(得分:1)
我相信您应该先尝试检查设备是否存在,然后再启动连接。然后,下一步,您应该处理连接错误。您可以检查连接API是否提供了提供超时的方法。如果这一切都不可能,那么只有您应该尝试使用问题中提到的setTimeout来处理此问题。但是,在这种情况下,您还应该考虑取消连接请求或在连接最终失败时至少处理错误的方案。
答案 1 :(得分:0)
如果您要等待特定的秒数。您可以使用setTimeout()。但是,如果要在连接响应后等待,一个更好的解决方案是使用try catch块,如果连接失败,则可以处理