Поскольку Angular вызывает метод подписки асинхронно, функция в console.log (startSpeechRecognition ()) вернет undefined даже до того, как наблюдаемое было подписано.
Вы можете применить console.log () внутри подписки:
this.speechRecognition.startListening(options)
.subscribe(
(results: Array<string>) => {
console.log(results);
return results;
},
(onerror: string) => (console.log("Error: "+onerror))
);
или добавить метод add () после подписки:
let obj = [];
this.speechRecognition.startListening(options)
.subscribe(
(results: Array<string>) => {
obj = results;
},
(onerror: string) => (console.log("Error: "+onerror))
).add(()=>
{
//Use your object here
console.log(obj);
});