2017-01-02 47 views
0

我试图在Facebook bot实现中询问后续问题“快速回复”。你可以看到完整的app.js(示例文件在这里):https://github.com/fbsamples/messenger-platform-samples/blob/master/node/app.jsJavascript正在等待函数响应完成

当1)用户输入命令 - 例如“你好”,在我向用户发送相关回复后 - 2)我想问一个跟进问题。 “你想知道今天的天气吗?”

case 'hello': 
     sendHelloGenericReponse(senderID); 
     sendWeatherQuickReplyQuestion(senderID); //only execute this after above is complete 
     break; 

I.e.我想在做2之前等待1完成。但是,由于某些原因,天气问题总是首先显示给用户。任何帮助,将不胜感激

+0

功能的使用您在'sendHelloGenericReponse'和'sendWeatherQuickReplyQuestion'方法的承诺? –

回答

0

包裹你的setTimeout

case 'hello': 
 
    sendHelloGenericReponse(senderID); 
 
    setTimeout(function(){ 
 
     sendWeatherQuickReplyQuestion(senderID); 
 
    },0) //only execute this after above is complete 
 
    break;

+0

这有什么用? – vlaz

+0

和vlaz一样的问题? :) – ChicagoDude

+0

它将确保完全执行当前堆栈,然后此方法'sendWeatherQuickReplyQuestion(senderID)'。虽然它不依赖于第一种方法的响应。 – ricky