Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在javascript中异步调用函数(使用angularjs)_Javascript_Angularjs_Cordova_Voice Recognition_Q - Fatal编程技术网

尝试在javascript中异步调用函数(使用angularjs)

尝试在javascript中异步调用函数(使用angularjs),javascript,angularjs,cordova,voice-recognition,q,Javascript,Angularjs,Cordova,Voice Recognition,Q,我正在尝试调用phonegap中的一个函数(用于TTS),该函数在每个标题之后立即出现长度变化(我正在阅读不同的新闻标题),我有一个语音识别功能,提示用户发出语音命令。像这样 navigator.tts.speak("If you would like to go to the next article, please say continue. Otherwise, say read me for another section"); $scope.reco(); reco()调用语音识

我正在尝试调用phonegap中的一个函数(用于TTS),该函数在每个标题之后立即出现长度变化(我正在阅读不同的新闻标题),我有一个语音识别功能,提示用户发出语音命令。像这样

navigator.tts.speak("If you would like to go to the next article, please say continue. Otherwise, say read me for another section"); 
$scope.reco(); 
reco()
调用语音识别。我不能接上一个电话

navigator.tts.speak(*<news_headline.>*) 
navigator.tts.speak(**)
在调用
reco()
之前完成。我使用angular,所以我尝试使用angular的承诺($q)(以几种不同的方式),但我似乎不知道如何让
speak()
在调用
reco()
之前等待。有什么建议吗

还有一个方面:我正在使用phonegap(几乎完全是为了android的目的),根据我的一点经验,它可能会带来很多麻烦。
如果您对此有任何帮助,我们将不胜感激。

我刚刚查看了build.phonegap.com上列出的两个TTS插件的文档,它们都具有回调功能

试试这个:

navigator.tts.speak("If you would like to go to the next article, please say continue. Otherwise, say read me for another section",$scope.reco); 

speak
是否有完成回调?如果是这样的话,您将在那里运行代码+1到charlietfl。检查.speak()上是否有.success(function())或.then(function());如果没有,我们就要动手了。我尝试使用回调函数
navigator.tts.speak(“text”,function(){$scope.reco;},function(){alert(“fail”)})但它对我不起作用(仍然异步运行),我会再检查一遍..是的,
navigator.tts
API似乎有问题,因为它必须提供承诺或回调之类的东西,在完成时会被调用,否则您无法确保在下一段代码运行之前完成