问题标签 [asynccallback]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
12115 浏览

c# - 用于多个客户端的异步 TCP 服务器

我有一个异步侦听传入连接的 TCP 服务器。如果只连接一个客户端,一切正常。但是如果有两个或更多的连接,服务器就不会收到第一条消息。当我调试 ReceiveCallback 函数时,我可以看到服务器获取消息的长度而不是数据。即,如果我连接两个客户端并尝试发送第一条消息:“hello”,服务器得到:received = 5; buffer= /0/0/0/0/0,所以什么都不显示。在同一客户端的第二条消息中,服务器获取数据。

这就是我的服务器的样子:

0 投票
2 回答
194 浏览

java - 异步回调失败

在我的应用程序中,我需要将字符串值添加到文件(.property 文件,如果它很重要)。并且用户在 gwt GUI 中输入此值。这是它的重要部分:

所以我需要使用 Asunccallback 来调用“服务器部分”中的方法。以下是这些方法:

所有接口都存在。当我运行我的代码并在 gui 中按“提交”按钮时,我看到两个异步回调失败(如您所见,Window.alert 显示“空指针异常”,尽管我发送给方法的值不为空) . 为什么会这样?你能给我一些建议吗?

UPD这里是萤火虫显示的错误:

0 投票
0 回答
865 浏览

c# - 从 Java 调用点网中实例化的异步命名管道

这个问题与我在 Java-C# 通信中提出的一个更早的、更一般的问题有关,但我认为它可能足够具体,可以单独提出(如果您认为我错了,请告诉我 - 我没有将那个标记为已回答但是,一旦我找出最有效的解决方案,就会回到它,这个问题是朝着那个方向迈出的一步......)。

我正在尝试使用命名管道在 C# 和 Java 之间进行通信。我的代码基于示例(由我之前问题的响应者指出)在 - http://v01ver-howto.blogspot.co.uk/2010/04/howto-use-named-pipes-to-通信.html

博客示例工作正常,但是因为在我自己的代码中我希望在我的 Java 程序连接到 C# 实例化管道时发生回调,所以我必须使用异步管道(博客中的示例没有这样做)。所以在实例化管道时,我的代码是 -

..然后我写了一个回调,称为指令PipeServerConnected,做我想要的东西得到一个连接。

在 Java 端,再次按照博客中的示例,我在 Java 端设置了管道,方法是:

但是,如果我尝试在 Java 中将一些测试数据写入此管道 -

并运行代码,然后代码停止并且无法越过这一行。如果我不使用异步管道,那么“instructionPipeJava”将能够将此文本写入管道就好了。但是我需要使用异步管道在 c# 端使用回调。

有没有人有什么建议?也许问题是我正在使用“new RandomAccessFile(..)”在 Java 中创建管道,并且有更合适的方法来连接到异步 C# 管道?

0 投票
1 回答
236 浏览

javascript - 在ajax完成之前回调以防止循环

我已经阅读了无数类似帖子的请求帮助示例以及回调背后理论的解释,但我就是无法理解。我已经到了我宁愿为我的特定场景找到解决方案并继续前进的阶段,即使我并不真正理解它的“为什么/如何”工作。我有一个需要循环的 ajax 调用,并且需要找到一种方法来防止在前一个调用完成之前进行下一个调用。您能否建议我如何使用回调或其他方法来实现这一点。

这是代码(有效,但不运行 ajax 调用 1-by-1 所以我遇到内存错误和页面崩溃)。运行的功能非常密集,最多可能需要 20 秒(但只需 1 秒)

runRAA()是在按钮按下时运行的主要功能。如何重新安排它以确保 returnAjax 在上一次完成之前不会运行?

在此先感谢您。我知道有人问过类似的问题,所以我请求您不要将我引向其他解释——我可能已经阅读过它们,但只是不理解这个概念。

干杯!

PS。我了解 iterator() 函数仅在 returnAjax() 完成时才需要运行,因为 iterator() 为 returnAjax() 函数的每个实例设置新参数值

0 投票
1 回答
1291 浏览

java - 如何正确地将数据添加到 GXT Grid?

我有一个 webapp,我需要从文件中获取一些数据并填写到表格中。这是带有此表的页面的代码:

当我运行我的应用程序时,我只看到列名,单元格中没有数据(当然也没有单元格)。作为示例,我使用了这个:Ext GWT 2.2.6 Explorer(Grid)

我不明白是什么导致了这样的问题。这可能是什么原因?

0 投票
2 回答
219 浏览

c# - dll中的异步回调导致表单冻结

我有一个带有按钮和文本框的表单 Form1。当我单击按钮时,我应该从 USB 设备获取一些数据。出于某种原因,它只有大约 2% 正常工作(我能够在 100 次点击中得到 2 个正确响应)。这是Form1的代码:

处理 USB 通信的代码位于 DLL Lib1 中(以下代码片段):

当它不起作用时,它会在 fileStreamDeviceData.BeginRead 周围停止,然后 Form1 冻结。

为了进行测试,我创建了一个全新的项目,而不是使用 DLL,而是将所有 DLL 代码复制到 Form1。此选项在 100% 的时间里都可以正常工作。所以我的问题是为什么它不适用于 DLL?

更新:当我很幸运并且它开始工作时,它会无限期地工作,直到我关闭应用程序。然后,我必须继续努力让它再次工作。如何解决此问题?

0 投票
1 回答
8247 浏览

node.js - Node.js async eachLimit 在这种情况下如何工作?

我编写了一个小async脚本,将大量 JSON 文件批量插入到 MongoDB 分片集群中。这是我第一次使用这个模块(我还在学习 Node.js)。我不知道我做得对不对。

  • 代码是瀑布 (1) 的最后一部分:之前的函数以具有db,collfiles属性的对象结束。
  • files数组包含数百个文件路径,并且应用于数组每个元素的函数同样是瀑布 (2)。
  • 瀑布(2)由以下部分组成:读取、解析、插入。当这个瀑布结束时 (3) 我调用complete以完成对数组中单个项目的处理,并传递错误(如果有的话)。

到目前为止一切顺利,对吗?

我无法理解的是async.eachLimit回调(4)内部发生了什么。从文档中:

在所有迭代器函数完成或发生错误后调用的回调。

也就是说,当所有函数都完成后,next()调用 (5) 结束脚本。但是根据文档,当发生单个错误时会调用相同的回调 (4)。那是我的脚本在单个文件失败时停止。

我怎样才能避免这种情况?

0 投票
3 回答
17993 浏览

javascript - Javascript 默认是同步(阻塞)还是异步(非阻塞)

我正在尝试掌握 Javascript 异步函数和回调。

我陷入了回调函数的概念,我正在阅读一些地方:它们用于顺序执行代码(主要是在 jquery 的上下文中,例如 animate)和一些特别是在 Nodejs 的上下文中的地方;它们用于并行执行异步并避免代码阻塞。

那么这个主题的一些专家能否阐明这一点并清除我脑海中的这个模糊(例子??)。所以我可以考虑使用回调函数

或者这完全取决于您在代码中调用/放置回调函数的位置?.

谢谢,

PS:我担心这个问题会很主观,但我仍然可以期待具体的答案(也许是一些例子)

编辑:实际上这是来自互联网的例子,这让我模棱两可:

结果

根据我的理解,当 JS 是顺序的时, do_b 应该总是在 do_a 之后。

0 投票
1 回答
2475 浏览

javascript - Meteor 同步执行系统命令

我已经用 C++ 构建了一个简单的模型,我希望流星与之交互。目前该模型作为命令行运行,一切运行良好,但调用命令行是异步完成的。该模型非常快,因此我不需要回调结果,此外在此过程中涉及回调会使流星的数据库访问更加复杂,这是我想避免的。

所以,我们只是遇到了一个常规问题:如何在 javascript 中进行异步同步……</p>

我知道这个已经用node讨论过了,这个话题已经在这里回答了: node.js execute system command synchronously

这就是说,如何在流星中实际执行/设置?

我们应该使用 npm 安装包,但是随着 Meteor 改变了它的分发系统,那么让它自己处理 npm 包的方法是什么?看看这里看看我在说什么,我一直没能找到关于这个 package.js 的任何相关信息

为了避免安装外部包,我想到了使用Fibers,但仍然:有人有关于如何用它封装异步调用的示例吗?最后但并非最不重要的一点是,Fibers 开发人员几乎建议我们不要直接使用 Fiber 进行编码,而是使用其他已经使用它的子工具……为什么不呢,但我又回到了关于如何包含 npm 包的问题

我的代码看起来像这样(有点简化):

我想要类似的东西:

0 投票
1 回答
1535 浏览

java - Android/Java 中的网络 - 从服务器回调后如何回调 API 类?

所以我正在基于我也在研究的iOS应用程序用Java编写一个Android应用程序,但这个问题更多的是询问如何在Java中通信回调机制(如Objective-C 2.0中的块)。

此应用程序涉及通过 API 与服务器联网、身份验证和通信。

我正在使用这个框架:https ://github.com/loopj/android-async-http

我正在尝试将所有网络模型封装到类中,以使一切变得干净和简单(在 iOS 中使用委托和块似乎很容易,但 java 似乎没有任何这些便利)。因此,我将其用作回调指南:http ://www.gdgankara.org/2013/03/25/android-asynchronous-http-client-a-callback-based-http-client-library-for- android-and-android-smart-image-view/

现在假设我不想从 Activity 类进行调用,而是可以从 Activity 类调用的 API 类,我该怎么做?我很容易知道如何在 iOS 中使用块和委托来做到这一点,但是如何使用接口来做到这一点?


例如:

iOS中(使用称为 AFNetworking 的通用网络框架),我有 4 个类:

HTTPClient.h/m

APILogin.h/m

登录对象.h/m

登录VC.h/m


所以,现在我到目前为止,使用 Android-Async-Http 库是:

HTTPClient.java

APILogin.java

登录对象.java

希望我已经更清楚地说明了我想要实现的目标。我希望能够在成功时对调用 api 调用的对象执行某种回调块。但是,它并不总是同一个对象。LoginObject 可能有一个 APILogin.java 的实例,因此可能有一个不同的对象,所以我不能使用上面的第二个链接,您可以在其中指定一个特定的类并将其传入并调用它的方法,因为这些类将是不同类型的,Java 没有通用指针(id 或 void*)对象。