Ich entwickle gerade einen Bot mit wit.ai
. Ich bin ziemlich neu zu node.js
. Grundsätzlich befolge ich die Anleitung von node-wit
lib. Ich durch mein wit
Objekt konstruieren:Async-Funktion in WIT-Aktionen
const wit = new Wit({
accessToken: WIT_TOKEN,
actions,
logger: new log.Logger(log.INFO)
});
In meinen Handlungen, ich habe so etwas wie:
const actions = {
send({sessionId}, {text}) {
//my sending action goes here.
},
firstaction({context, entities,sessionId}) {
var data = async_function();
context.receiver = data;
return context;
}
}
Das Problem ist, dass alles, was nach async_function
kommt zuerst ausgeführt wird. Ich habe versucht, async_function
ein Versprechen zurückzugeben. Dies würde jedoch nicht funktionieren, da alles, was nach meiner ersten Aktion in der Bibliothek kommt, zuerst ausgeführt wird, ohne auf die Rückkehr des Kontexts zu warten. Ich möchte die node-wit
Bibliothek nicht ändern.
Jede Idee, die mein Problem lösen würde, wird geschätzt!
Vielen Dank für Ihre Referenz! Ich frage mich nur, ob die Funktion, die meine erste Station ruft, auf den Wasserfall warten wird? – Wei
Ich bin mir nicht ganz sicher, wie Ihr Code läuft, 'firstaction()' ist ein Funktionsaufruf und Sie geben den Kontext zurück? könnten Sie bitte 'firstaction()' Funktionsdefinition und 'async_function()' Definition auch posten. –
Ja, der Firstaction() ist ein Funktionsaufruf, der Kontext zurückgibt. Wie auch immer, ich habe es gelöst, indem ich deinen Weg benutzt habe. Es erfordert ein wenig Umstrukturierung meines Codes tho. Ich danke dir sehr!. – Wei