循环异步请求

编程入门 行业动态 更新时间:2024-10-27 17:24:02
本文介绍了循环异步请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

所以我有以下代码来循环一个对象:

so I have the following code to loop through a Object:

for(var x in block){ sendTextMessage(block[x].text, sender, function(callback){ //increment for? }) }

对于每次迭代我想做一个请求(发送一个facebook消息),只有在该请求完成后,我才想要进行下一次迭代,这是因为没有任何回调,消息不会被发送正确的接班人.

For each iteration I want to do a request (send a facebook message), only after that request has finished, I want to go through the next iteraction, this is because without any callbacks, the messages won't be sent in the right succession.

function sendTextMessage(text, sender, callback) { let messageData = { text:text} request({ url: 'graph.facebook/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') } }) }

我以前遇到过这个问题,但无法解决,我该怎么办?

I've had this problem before and not been able to solve it, how can I, somehow do this?

如有任何问题,请追问.谢谢.

If you have any questions, please ask. Thank you.

推荐答案

我最终关注了 @Matt Diamond建议并执行如下所示的递归函数:

I ended up following @Matt Diamond advice and do a recursive function that looks like this:

function buildFlow(block, sender){ var i = 0; recursive() /* for(var x in block){ sendTextMessage(block[x], block[x].type, sender) console.log(x) }*/ function recursive(){ if (i<Object.keys(block).length){ sendTextMessage(block[Object.keys(block)[i]], block[Object.keys(block)[i]].type, sender, function(){ i++ recursive() }) }else{ i = 0 } } }

感谢所有提供帮助的人,非常感谢.

Thanks everyone who gave some help, greatly appreciated.

更多推荐

循环异步请求

本文发布于:2023-11-11 17:45:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1579134.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!