我正在使用cordova语音识别插件(https://github.com/pbakondy/cordova-plugin-speechrecognition),该方法将返回用户所说的内容 . 但是,如果我是console.log(startSpeechRecognition()),_2515213将不会被执行,它将返回'undefined'
startSpeechRecognition() {
var options = {
language:'en-US',
showPopup:false
};
this.speechRecognition.startListening(options)
.subscribe(
(results: Array<string>) => {return results},
(onerror: string) => (console.log("Error: "+onerror))
);
}
我通过使用toPromise()尝试了另一个解决方案(Angular 2: Convert Observable to Promise),但我仍然得到相同的结果 . 任何帮助是极大的赞赏 .
2 回答
因为Angular异步调用subscribe方法,所以即使在订阅了observable之前,console.log(startSpeechRecognition())中的函数也将返回undefined .
您可以在subscribe中应用console.log():
或者在订阅后添加add()方法:
这不会产生任何结果 .
试试这个 .