簡體   English   中英

函數不會等到所有內容都執行完畢后再繼續

[英]Function not waiting till everything is executed before moving on

我正在構建一個聊天機器人。 我有一個功能如下:

function Smoking(){
   var userinput=document.getElementById("messages").value                   
   window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Do you smoke?");
   if (userinput=="Yes"){                               
   window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Oh no! Smoking is not good for your health!");
}else if(userinput=="No"){                                
   window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Good to hear that you are not smoking!");
 }
}

Smoking() 函數在用戶要求聊天機器人提問時被調用:

var convpatterns = [
[".*hi.*", "Hello there!","Greetings!"],
[".*ask me.*", Smoking],
["Yes","You seem quite sure.","OK, but can you elaborate a bit?"]

window.iSpeech.speak 插件允許系統朗讀單詞並且該插件已正確安裝並在其他功能中工作。 然而,當 Smoking() 函數被調用時,系統只說“你抽煙嗎?”,而不等待用戶輸入。 當用戶在文本框中輸入“是”或“否”時,系統繼續將輸入文本識別為“是”數組,而不是 Smoking() 函數中的“是”。 所以如果用戶輸入“是”,聊天機器人會說“你看起來很確定”,而不是“哦,不!吸煙對你的健康有害!”

所以我只是想知道是否有辦法讓函數等到所有行都執行完畢后再繼續?

更新

我嘗試將它們放入兩個單獨的函數中,但仍然無法正常工作:

function Smoking(){                 
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Do you smoke?");
SmokingAnswer()
}

function SmokingAnswer(){
var userinput=document.getElementById("messages").value
if (userinput=="Yes"){                             
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Oh no! Smoking is not good for your health!");
}else if(userinput=="No"){                                
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Good to hear that you are not smoking!");
}
}

不執行 SmokingAnswer() 函數。

我的理解是,你想通過語音向用戶提問,用戶應該在聊天框中回復。

為了讓您的應用程序以正確的方式工作,您應該將其分成多個 JS 函數。 當用戶進入站點或聚焦聊天框時調用第一個函數。 這個函數會問這個問題。

然后用戶輸入一些東西,假設用戶單擊按鈕后第二次運行該功能。 然后第二個函數將檢查輸入並評估可能的答案。 “哦,天哪……”/“很高興聽到……”

您的函數的設計方式是這樣的:一旦運行它就會提出問題,但它需要聊天框中已有的答案,因為您還沒有詢問用戶,此時聊天框很可能是空的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM