Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >for循环回调中的异步请求(facebook messenger bot)

for循环回调中的异步请求(facebook messenger bot)
EN

Stack Overflow用户
提问于 2018-01-11 14:41:00
回答 1查看 94关注 0票数 0

我正在尝试向我的订阅用户(+-8000)发送自动新闻消息,为此,我使用了一个for循环来传递每个用户。问题是我在for循环的异步函数的回调中使用了一个异步函数,但是我的bot发送了所有的文本,然后发送了所有的泛型,所以用户在收到文本和泛型之间可能需要8分钟的时间。

下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
for (user of userList) {
  sendText({
      id: user.id,
      text: Sometext
    },
    //////CALLBACK/////////

    (err, data) => {
      if (err) {
        console.err("text => " + err)
      }
      console.log(`Text send ${user}`)

      /////IT SHOULD SEND THE GENERIC EVERYTIME WHEN THE TEXT CALLBACK

      sendGeneric({
          id: user.id,
          elements: elements
        },
        //////CALLBACK/////////
        (err, data) => {
          if (err) {
            console.err("Generic => " + err)
          }
          console.log(`carousel  send ${user}`);
        })
    })
}

然后在我的日志里我得到了

代码语言:javascript
运行
AI代码解释
复制
Text send user1
Text send user2
Text send user4
Text send user5
Text send user3


carousel send user1
carousel send user4
carousel send user2
carousel send user5
carousel send user3
EN

回答 1

Stack Overflow用户

发布于 2018-01-11 23:17:59

那么,sendTextsendGeneric是异步函数吗?因为你从来不会等他们。

此外,如果您支持最新的ecmascript,您可以将for循环中的函数与异步封装在一起,然后等待每个sendText

代码语言:javascript
运行
AI代码解释
复制
var someFunc = async function() {
     //Some code ...
     for(user of userList){
         await sendText(/*your function*/);
     }
}

如果你不支持异步/等待的最新ecmascript,那么你可以为每次迭代链接队列(类似.then )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48209650

复制
相关文章
工程师必备APP抓包技能
一台上网电脑就能完成 APP 抓包分析一条龙服务。这是一篇 APP 抓包分析总结性文章,采用 APP 模拟器与 Web 调试代理工具组合玩法。从此 APP 抓包分析能力变得游刃有余,告别脚忙手乱。
全栈程序员站长
2022/09/02
2K0
工程师必备APP抓包技能
Charles的代理设置
MacOS下的开发少不了抓包调试,而Charles绝对是开发者必不可少的抓包工具!
老高的技术博客
2022/12/28
7830
Android SDK 国内更新代理
配置步骤 启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options…」,弹出『Android SDK Manager – Settings』窗口; 在『Android SDK Manager – Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu.cn和80,并且选中「Force https://… sources to be fetched using http
前Thoughtworks-杨焱
2021/12/08
2.6K0
解决Android手机连接Charles Unknown问题
在应用xml目录下新建一个名为network_security_config.xml,内容为
技术小黑屋
2020/01/21
3.8K0
charles抓包教程(微信7以上如何抓包)
在官方网站下载最新的安装包,然后点击运行,在弹出的安装向导中,根据提示进行操作即可顺利完成安装。过程很简单,所以这里进行不详细介绍。当前最新的版本是 charles-proxy-4.2.7-win64.msi 。
全栈程序员站长
2022/07/28
7.2K0
charles抓包教程(微信7以上如何抓包)
Mac 上使用 Charles 抓包 (Android http)
通过抓包发现,同样的 get 请求,抓包的数据和直接放在浏览器里得到数据不一致,可能是由于头部数据差异导致,请求时请注意相关规则。
Jingbin
2019/05/23
1.1K0
APP 抓包和微信小程序抓包-Charles 的精简使用教程
在官方网站下载最新的安装包,然后点击运行,在弹出的安装向导中,根据提示进行操作即可顺利完成安装。过程很简单,所以这里进行不详细介绍。当前最新的版本是 charles-proxy-4.2.7-win64.msi 。
全栈程序员站长
2022/07/01
4K0
APP 抓包和微信小程序抓包-Charles 的精简使用教程
Charles基本使用
Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量. 这包括请求,响应和HTTP标头(包含cookie和缓存信息).
测试加
2022/03/24
9240
Charles基本使用
fiddler和charles哪个好用_charles手机设置代理后上不了网
Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。 此时,我们只需网上找一个注册码即可
全栈程序员站长
2022/09/19
4500
fiddler和charles哪个好用_charles手机设置代理后上不了网
[601]app抓包Charles安装之爬取微信小程序
Charles,一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
周小董
2022/04/13
3K0
[601]app抓包Charles安装之爬取微信小程序
APP爬虫开发环境准备
在进行APP爬虫开发的时候,我们一般是通过手机连接PC端代理上网,进行抓包分析,那么以这种方式抓包的时候就需要在手机端进行对应的操作,但是我们不可能一直通过手动去操作手机进行抓包,所以要使用adb这种Android开发命令的方式进行操作。但是现在很多手机权限控制比较严密,直接连接真机有很多操作是不支持的,所以就必须用到模拟器。很庆幸安卓模拟器有很多种,下面我们就介绍一下APP爬虫开发环境的简单搭建和基础使用。
星星在线
2020/05/22
1K0
Simulator 和 Emulator 的相同和不同;
在看模拟器的时候,出现了关于Simulator和Emulator两种词汇;都可以翻译为模拟器;但在调研游戏模拟器的时候,多为Emulator; 两者词汇的含义和应用场景有什么异同呢?
西湖醋鱼
2021/02/23
2K0
移动端网页调试方案
移动端调试方案 页面容器 移动设备上的各种浏览器 各类app内的webview debug方案 Android端 iOS端 跨平台 抓包工具Charles 调试工具weinre 其他方案 附录:ES6标准兼容情况 页面容器 移动设备上的各种浏览器 chrome、safari、firefox、samsung browser
IMWeb前端团队
2019/12/04
1.3K0
移动端网页调试方案
由于移动端网页开发不能直接打开developer tools,导致我们调试起来稍微麻烦。好在我们有解决方案: Remote Devices 谷歌为我们提供的开发利器,让我们可以在电脑端使用developer tools进行elements检查和network监测,非常方便快捷。 使用方式:
从今若
2019/09/18
1.8K0
移动端网页调试方案
Android 渗透测试学习手册 第二章 准备实验环境
在上一章中,我们了解了 Android 安全性及其体系结构的基础知识。 在本章中,我们将了解如何建立 Android 渗透测试实验环境,其中包括下载和配置 Android SDK 和 Eclipse。 我们将深入了解 ADB,并了解如何创建和配置 Android 虚拟设备(AVD)。
ApacheCN_飞龙
2022/12/01
8400
Android Studio在android Emulator中运行的项目黑屏
  最近在做一个Android相关的小项目,因为之前这方面的项目做的比较的少。今天在使用虚拟机调试的时候经常出现一些莫名其妙的问题,经过自己多次的尝试和搜索终于解决了这些问题。
追逐时光者
2021/04/30
4.9K0
Android Studio在android Emulator中运行的项目黑屏
抓包神器之Charles,常用功能都在这里了
KS Knowledge Sharing 知识分享 现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享 我们在开发网站项目的时候,我们可以通过浏览器的debug模式来看request以及response的数据,那么如果我们开发移动端项目没有网页呢?如何抓取数据呢? 前几天有个做服务端的师弟跟我说他不用抓包工具,遇到问题直接debug代码,那我问他,如果线上服务的话,你怎么调?在实际项目中,没有遇到跟客户端相互扯皮的事情吗?我觉得很正
互扯程序
2018/01/31
6K0
抓包神器之Charles,常用功能都在这里了
android terminal emulator_android自启动
// data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; data->early_suspend.suspend = gxx_suspend; data->early_suspend.resume = gxx_ts_resume; register_early_suspend(&data->early_suspend);
全栈程序员站长
2022/10/02
4790
Python3网络爬虫实战-6、APP爬
除了 Web 网页,爬虫也可以对 APP 的数据进行抓取,APP 中的页面要加载出来,首先需要获取数据,那么这些数据一般是通过请求服务器的接口来获取的,由于 APP 端没有像浏览器一样的开发者工具直接比较直观地看到后台的请求,所以对 APP 来说,它的数据抓取主要用到一些抓包技术。
py3study
2020/01/03
7270
Python3网络爬虫实战-6、APP爬
《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(16)-Charles其他骚操作之大结局
今天就说一些Charles的其他操作、以及抓包跨域的问题和常见的问题如何解决。到此Charles这一系列的文章也要和大家说再见了,其他什么小程序、Android7.0等等的问题可以查看宏哥的Fiddler系列文章,只不过是将Fiddler换成Charles而已。
北京-宏哥
2023/05/08
1.2K0
《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(16)-Charles其他骚操作之大结局

相似问题

如何在Windows上使用Charles Web Proxy和最新的Android Emulator配置SSL证书?

875

Charles代理SSL问题

10

使用Genymotion和Charles的SSL代理?

45

Ubuntu上的Charles代理问题

13

Charles代理在SSL连接方法上失败

1116
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文