so I have the following code to loop through a Object:
for(var x in block){
sendTextMessage(block[x].text, sender, function(callback){
//increme
One of the ways I've solved this in the past is to use an interval timer, sort of like this:
var isSending = false;
var sendMessages = setInterval(function() {
if(!isSending) {
isSending = true;
sendTextMessage(block.pop().text, sender, function(){
if(block.length) {
isSending = false;
} else {
clearInterval(sendMessages);
//Done
}
})
}
})
function sendTextMessage(text, sender, callback) {
let messageData = { text:text}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (response.statusCode >= 200 && response.statusCode < 300){
if(callback) callback('success')
}
})
}