我有两个功能在Flutter。第一个是belManager.writeCharacteristic
,第二个是belManager.disonnect
我想在belManager.writeCharacteristic完成后执行belManager.disonnect()。但是,由于某些原因,bleManager.disonenct()在belManager.writeCharacteristic完成之前被调用。这是代码:
switch (currentState) {
case BluetoothDeviceState.connected:
await bleManager!.writeCharacteristic();
await bleManager.disconnect()
break;
case BluetoothDeviceState.disconnected:
print("please connect");
break;
先谢谢你的建议。
2条答案
按热度按时间ffscu2ro1#
按照以下步骤操作,如果问题没有帮助,请使用更详细的代码更新问题:
async
,没有它所有的等待都是无用的。try/catch
,这样如果它生成了一个异常,您可以很容易地找到它。writeCharacteristic()
之后调用.then()
内部的disconnect()
方法,这样你应该能够“强制”只在writeCharacteristic()
完成时触发disconnect()
方法。writeCharacheristic()
的Future是否正常完成,并且它做了它应该做的事情。如果这没有帮助,请在下面评论并更新您的问题,快乐编码!
gwbalxhn2#
你只需要将你的逻辑封装在Async函数中,这样你就可以很容易地等待方法。