Ich möchte eine Reihe von Nachrichten über einen Messenger-Bot mit einiger Zeit dazwischen senden und den Typisierungseffekt anzeigen. Zur Zeit habe ich diesen Code:So verwenden Sie setTimeout und Promises in Messenger ordnungsgemäß
sendTextMessage(recipientId, `Howdy ${snapshot.child("userDetails/firstName").val()}! I’m Marco :)`)
sendSenderAction(recipientId, "typing_on")
setTimeout(()=>sendTextMessage(recipientId, "Botting Marco."),1000)
sendSenderAction(recipientId, "typing_on")
setTimeout(()=>sendTextMessage(recipientId, "Let me show you some of my recent work. This is the first portfolio bot ever. (afaik) :p"),5000)
sendSenderAction(recipientId, "typing_on")
setTimeout(()=>sendTextMessage(recipientId, "How many minutes do you have?"),7000)
userRef.update({stage:1, class:1, awaiting: true})
Der Typisierungseffekt erscheint jedoch aus einigen Gründen nicht. Muss ich Promises verwenden, um sicherzustellen, dass jede Zeile ausgeführt wird, wenn die vorherige beendet ist? Kannst du mir ein Beispiel zeigen?
Nein, Sie müssen keine Versprechungen verwenden, jeder Callback-Mechanismus funktioniert genauso gut - Versprechungen machen die Dinge weniger unordentlich, weil sie angekettet werden können, also, keine "Pyramide des Verderbens" oder "Rückruf-Hölle" in Ihrem Code –