问题标签 [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 投票
10 回答
56793 浏览

ruby-on-rails - 使用 ActiveRecord,有没有办法在 after_update 期间获取记录的旧值

使用一个简单的示例进行设置:我有 1 个表 ( ),其中包含第二个表 ( )中每个记录的列Totals的总和。amountThings

当 athing.amount得到更新时,我想简单地将旧值和新值之间的差异添加到total.sum.

现在我正在减去self.amountduringbefore_update并添加self.amountduring after_update。这使更新成功的方式过于信任。

约束: 我不想简单地重新计算所有交易的总和。

问题:很简单,我想在after_update回调期间访问原始值。你想出了什么方法来做到这一点?

更新:我同意 Luke Francl 的想法。在after_update回调期间,您仍然可以访问self.attr_was正是我想要的值。我还决定使用一个after_update实现,因为我想在模型中保留这种逻辑。这样,无论我决定将来如何更新交易,我都会知道我正在正确更新交易的总和。感谢大家的实施建议。

0 投票
1 回答
7995 浏览

jquery - 如何将自定义回调函数附加到 jquery 自动完成扩展?

我正在使用 Dylan Verheul、Dan G. Switzer、Anjesh Tuladhar、Jörn Zaefferer 的 jquery autocomplete 1.0.2 扩展。当从自动完成控件中调用 .show() 和 .hide() 时,我正在尝试执行我自己的回调函数。我还没有找到任何方法让它真正识别我的回调函数。如果有人熟悉此控件并可以提供帮助,我将不胜感激。

0 投票
2 回答
2617 浏览

c - pthread 回调中断用户输入

我已经编写了自己的 stop_watch 模块。这将创建一个线程并休眠几秒钟。一旦秒数过期,它将调用 main.c 中的回调函数并通知用户时间已过期。

这样用户将只有 3 秒的时间输入一个数字,而他们必须输入 5 个数字。如果时间到期,程序必须停止。

2个问题。1)如果他们在要求的时间内输入数字。我怎样才能取消线程。我正在考虑使用 thread_kill 或 thread_cancel?2)如何终止 do_while 循环?因为 scanf 在等待用户进入时会阻塞。

非常感谢您的任何建议,

我的代码如下:

顺便说一句,这个问题是关于 C99 gcc 的。

0 投票
3 回答
7196 浏览

c++ - 我需要在 C++ 中创建一个简单的回调吗?我应该使用 boost::function 吗?

假设我有一些这样的代码:

我需要创建一个简单的回调,只要调用 Visitor::visit() 就会调用该回调。我知道我可能应该将回调的代码放在我的访问者中,但它在不同的上下文中,所以我想将 callBackFunction() 传递给访问者,以便他可以调用我的回调函数。

我在网上找了东西,看到了 boost::function,但是 c++ 已经有了基本的仿函数。

为了使代码更清晰,我应该使用哪一个?回调将是一个简单的 void() 函数,但它可能会增长,你永远不知道未来 :)

推荐的方法是什么?

0 投票
5 回答
1888 浏览

javascript - 这符合您对回调的定义吗?

回调的定义:

在组件中设置为属性的函数。并且通常在组件上发生某些事件时调用。

例如:

如果您希望在用户单击 Component componentB时显示一个显示“我被点击”的对话框,您可以编写一个存储为变量的方法来执行此操作:

接下来,您将在组件内设置此函数,如下所示...

这将导致mouseDownCallbackFunction在单击组件时在警报框中显示“我被单击” 。

0 投票
9 回答
24338 浏览

javascript - 闭包与回调有何不同?

我问了一个关于回调的问题并提出了另一个问题(见评论)。闭包与回调有何不同?

0 投票
8 回答
636 浏览

java - 没有函数指针,在Java中实现回调的推荐方法是什么——除了接口?

我有几个类想要相互传递一些信息并在以后使用该信息(回调模式)被回调。

在我的应用程序中,这种机制有两个目的:

  • 计划/延迟执行
  • 涉及消息传递的异步执行

我的对象基本上互相说“当你完成 X 后,给我回电话并告诉我用 Z 做 Y(因为到那时我会忘记它)”。X 可能只是在等待正确的时间,但也与远程服务通信或调用本地函数。

现在,如果 Java 中有函数指针(或等价物),我会实现一些“作业”类,其中包含一个加它需要的参数。例如,在 PHP 中,这个结构必须存储一个类名、一个函数名和一个参数数组。在 C 中,它是一个指向函数的指针,我必须为所有调用设置相同的参数编号和类型。

在 Java 中,通常的方法是拥有一个由所有想要回调的类实现的接口,如下所示:

现在这对我不起作用,因为

  • 要回调的对象可能有一组不同的方法来进行调用
  • 呼叫者不是决定应该拨打什么电话的人

也许我的问题是我试图为各种回调建立一个通用的数据结构和调用过程,但原则上,这对我来说似乎很有意义。

在 Java 中处理这种情况的好的设计模式是什么?

0 投票
19 回答
373080 浏览

ios - 如何在 Objective-C 中创建委托?

我知道代表是如何工作的,我也知道如何使用它们。

但是我如何创建它们?

0 投票
3 回答
10570 浏览

c++ - 在映射中存储指向成员函数的指针

我想将字符串映射到实例成员函数,并将每个映射存储在映射中。

做这样的事情的干净方法是什么?

如果您发现这种方法有问题,请告诉我,常见的成语是什么?

也许,我应该使用 if-else-if 语句链,因为我的成员函数数量有限,而不是混乱的 func 指针映射

顺便说一句,我在c++-faq-lite中找到了一些有用的信息

0 投票
6 回答
29446 浏览

c - C中的函数指针和回调

我已经开始审查回调。我在 SO 上找到了这个链接: 什么是 C 中的“回调”以及它们是如何实现的? 它有一个很好的回调示例,与我们在工作中使用的非常相似。但是,我试图让它工作,但我有很多错误。

我知道回调使用函数指针来存储函数的地址。但是有几件事我觉得我不明白:

  • “注册回调”和“事件调度程序”是什么意思?