问题标签 [callback]

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 投票
2 回答
149 浏览

ruby-on-rails - What is the earliest callback one can hook in the Rails Framework?

I have found the before_dispatch and after_dispatch in dispatcher.rb but I need to access something earlier. Like around when Rails.public_path is defined.

0 投票
6 回答
3433 浏览

javascript - 您如何处理 AJAX 站点中的繁忙图标?

此问题涉及并发问题,有关如何显示忙碌图标的建议,请参阅此问题:Javascript - loading/busy indicator or transparent div over page on event click

当用户在页面上发起 AJAX 请求时,显示某种“工作”或忙碌图标或进度指示器很有用。如果只有一个长时间运行的进程,则可以以相对简单的方式处理:

但是,如果页面上正在运行多个异步进程,则使用 on/off 方法将不起作用。即使有其他进程正在运行,第一个完成的进程也会关闭图标。

那么,您如何处理在网页上显示一个指示器,即当有一个或多个进程在运行时打开,当没有进程在运行时关闭?

我想有可能保持对正在运行的进程数的计数。hide_busy_icon()仅当进程计数为 0 时才隐藏图标。这似乎有点容易失败。也许我没有看到更好/更简单的方法。

感谢您的想法和建议!

编辑:在标记答案中使用解决方案一段时间后,我很高兴地说它运行良好。我遇到的唯一问题是我自己的脚本调用我无法控制的脚本函数的情况。除非这些函数允许提供回调,否则无法在它们开始和结束时更新进程计数。

可能发生这种情况的一个示例是向 Google 地图添加一组标记。一旦我的脚本调用 Google 地图功能,忙碌图标就会消失,而标记仍在加载中。

我不确定处理这个问题的好方法。

0 投票
6 回答
82398 浏览

asp.net - 回发和回调之间的区别

我不断听到“回调”和“回发”这两个词被折腾。
两者有什么区别?

回发是否非常特定于 ASP.NET 页面?

0 投票
2 回答
722 浏览

.net - 带有 (object, EventArgs) 参数的事件回调是 1.1 和 WinForms 的保留吗?

所以我最近开始玩 FxCop,我注意到的一件事是它坚持认为附加到事件的任何方法都应该采用以下形式

并附上

现在在.Net 1.1 的日子里一切都很好,但从 3.5 开始,我发现只进行 Action 类型的事件调用或其泛型之一,并完全按照我的方式编写方法变得更加容易和直观如果它被显式调用;没有那个对象发送者或EventHandler cruft。

作为一个问题,我认为这是一个平面设计的必要性。如果您为事件回调设计了不同的方法,这意味着该方法至少隐含了一些关于其调用的信息——这是一个主要的禁忌!

我完全愿意接受我可能会遗漏一些东西。你们对此有何看法,FxCop 错了还是我错了?

0 投票
3 回答
2576 浏览

vb.net - 运行时检查失败 #0 vb.net 来自 C dll 的回调

我正在用 VB.Net 编写插件应用程序 A,用 C 语言编写 DLL B。应用程序 A 将回调方法传递给 dll B。当某些事件发生时,dll 会从 A 调用回调。整个在我的 PC 上工作正常,但是当我将它移动到笔记本时出现错误:

运行时检查失败 #0 - ESP 的值未在函数调用中正确保存。这通常是调用使用一种调用约定声明的函数和使用另一种调用约定声明的函数指针的结果。

这是 C 代码的一部分:

}

其中 dwInstance 是应用的地址 一个回调方法

这是 VB.Net 代码的一部分:

当我尝试调用“vbFunc()”时发生错误。如果有任何帮助,我将不胜感激。:D

0 投票
3 回答
830 浏览

c++ - 如何在 win32 中为 RichEdit 设置回调机制

在win32中,我如何为我自己没有创建的RichEdit设置回调机制?

第1部分

我正在阅读另一个应用程序 GUI 中的 textedit 字段。这现在工作得很好,除了第一次阅读后我只想获取新的或修改的行。在 GTK+ 或 Qt 中,我只需在字段更改时编辑的某些信号上安装回调,但它在 Win32 上如何工作?

我的 MSDN 搜索结果没有任何用处,可能是因为我不知道要搜索的确切术语。textedit 的类是RichText20W,它有一些可能以某种方式使用的消息,尽管那篇文章只是讨论了将它们用于类的父级。

第2部分

另外,如果没有这样的“文本更改,这里是新插入的文本”回调立即返回新内容,我需要一些方法来轻松检测新内容。从我的头顶:

  1. 在我们阅读的文本块的末尾有一个标记,并且只在它和结尾之间阅读。
  2. 存储我们之前读过的内容,并在第二次阅读后,从后者中删除重复的部分以获取新插入的内容。

选项 2 可能不可行,因为 textedit 可以包含任意数量的文本。标记部分听起来可行,但再一次,我微弱的 Win32 技能和可怕的 Win32 函数名称使我无法找到正确的方法。

请注意,对于我拥有且未创建的文本编辑器,所有这些都必须是可行的,它们属于第三方进程。

高度赞赏 C++ 中的代码示例。

免责声明

显然,如果有更好的方法,请告诉我。根据我之前使用 GTK+/Qt 的经验,我只假设回调是可行的方法。随意告诉我路径:)

0 投票
6 回答
192883 浏览

jquery - 在jQuery中提取Ajax返回数据

我已经完成了 jQuery 和 Ajax,但我无法将响应放入 Div 元素。这是代码:

索引.html

它正在接收对我的<div id="response"></div>.

ajax.php以下代码返回到index.html文件:

我能否将 OneVal 和 Subval 提取到变量中,如何提取“OneVal”和“SubVal”,而不是上述响应?

0 投票
13 回答
147334 浏览

c++ - 如何将类成员函数作为回调传递?

我正在使用一个 API,它要求我将函数指针作为回调传递。我正在尝试在我的课堂上使用这个 API,但我遇到了编译错误。

这是我从构造函数中所做的:

这不会编译 - 我收到以下错误:

错误 8 错误 C3867:'CLoggersInfra::RedundencyManagerCallBack':函数调用缺少参数列表;使用 '&CLoggersInfra::RedundencyManagerCallBack' 创建指向成员的指针

我尝试了使用的建议&CLoggersInfra::RedundencyManagerCallBack- 对我不起作用。

对此有任何建议/解释吗?

我正在使用VS2008。

谢谢!!

0 投票
3 回答
945 浏览

asp.net - 如何在 PageMethods 回调中将上下文对象作为数组访问

我似乎无法使用设置的循环上下文访问上下文对象:var context = [id1, id2, id3];

此回调函数有效:

此回调函数失败:

0 投票
3 回答
2675 浏览

java - 在 Java 中验证反射方法返回类型和参数

我有一个通用的回调对象,它为 Java 提供(原始)回调功能,在没有闭包的情况下。Callback 对象包含一个 Method,并通过几个访问器方法返回该方法的参数和返回类型,这些访问器方法只是委托给 Method 中的等效方法。

我正在尝试验证为我提供的回调是否指向有效方法。我需要与 Number 兼容的返回类型赋值以及与 Double 兼容的所有参数。我的验证方法如下所示:

我遇到的问题是,当我尝试使用例如 Math.abs() 时,它会为返回类型抛出异常,如下所示:

这让我感到惊讶,因为我希望原语能够简单地工作,因为 (a) 它们使用它们的包装类来反映,并且 (b) Double.TYPE 被声明为 Class<Double> 类型。

有谁知道我如何在不修改我的支票的情况下实现这一目标:


澄清

当您double abs(double)使用 Method.invoke() 调用该方法时,您传入一个 Object[]{Double} 并返回一个 Double。但是,我的验证似乎失败了,因为 Double.TYPE 不能分配给 Double。由于我要求所有这些回调返回某种数字,这将由 invoke() 作为数字返回,因此我试图验证提供的方法是否返回数字或数字原语。

参数的验证也是如此。

换句话说,当使用反射时,参数和返回类型 Double 和 double 是相同的,我想这样轻松地验证它们。

编辑:进一步澄清:我想验证一个方法是否会在调用 invoke() 时返回一个 Number 类型的对象(我可以从中调用 obj.doubleValue() 来获得我想要的双精度)。