flutter - 颤振异步功能被跳过
问题描述
因此,当我发现某个函数由于某种原因被 Dart 跳过时,我试图组织我的代码并将其分解为更小的函数,如果有人精通异步编程的话;解释为什么会发生这种情况将不胜感激。
编码:
void _converse(bool first_run) async {
first_run ? _speak("how may I help you?") : _speak("need anything else?");
sleep(Duration(seconds: 3));
await _listen();// the _listen function
sleep(Duration(seconds: 10));
first_run = false;
}
_listen() 代码:
Future _listen() async {
String _question = '-';
if (!_isListening) {
bool available = await _speech.initialize(
onStatus: (val) => print('onStatus: $val'),
onError: (val) => print('onError: $val'),
);
if (available) {
setState(() => _isListening = true);
_speech.listen(
onResult: (val) => setState(() {
_text = val.recognizedWords;
if (val.hasConfidenceRating && val.confidence > 0) {
_confidence = val.confidence;
}
}),
);
}
} else {
setState(() => _isListening = false);
// test placeholder
process_speech(_text);
_speech.stop();
}
}
应该接受语音输入的 _listen() 函数被忽略。
解决方案
推荐阅读
- splunk - 将自定义列/字段添加到 splunk 结果中
- django - Edit a unique field used as foreignkey in Django
- python - Python character decoder
- python - How can I install CTC-Decode?
- javascript - 过滤方法的理解
- html - patch value issue when update the form
- c# - 使用 RSACng 512 + OaepSHA256 加密数组时出现“参数不正确”异常
- javascript - 单选按钮的角度组件未正确绑定
- node.js - NodeJS 抛出 module_not_found
- c# - IEquatable 文档?