问题标签 [generic-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 投票
3 回答
1420 浏览

c++ - 从方法指针动态创建泛型函数指针,推导出返回值和参数

我有这个助手类,我用它来调用需要静态 C 函数的代码的成员方法。这个特定的“版本”与 Windows LPTHREADROUTINE 回调兼容,将DWORD (class::method) (void *)函数作为参数,调用如下:

我希望使整个事情变得通用,并且我知道它可以使用新的 C++11 标准来完成,但我无法完成它。

我尝试将 MakeThreadInfo 函数的接口更改为如下所示:

这似乎是要走的路,但我无法将这个值传递给上游。


这就是我想要得到的:

给定一个带有 MyMethod 方法的类 MyClass,以及一个变量返回类型的回调和一个或多个不同类型的参数(最后一个是 a void *userData),我怎样才能在尽可能少的样板化的情况下将一些东西传递给回调和让它依次调用 MyClass::MyMethod。

为了显示:

什么是有效的实现CreateGenericCPointer

0 投票
1 回答
109 浏览

c++ - 我做了两个模板类,谁能告诉我这些东西有用吗?

最近我根据“Modern C++ design”一书制作了两个模板类。我认为这些课程很有用,但我公司里没有人同意我的观点,那么有人能告诉我这些东西是否有用吗?

第一个是参数包装器,它可以将函数参数包装到单个动态对象中。它看起来像“现代C++设计”中的TypeList。

你可以像这样使用它:

您的代码的某个地方:

您的代码的其他地方:

第二个是通用回调包装器,它与其他包装器相比有一些特别之处:
1.这个模板类有一个动态基类,它可以让你使用一个单一类型的对象来代表所有的包装器对象。
2.它可以将回调和它的参数一起包装,你可以稍后执行回调和参数。

你可以像这样使用它:

您的代码的某处:

您的代码的其他地方:

以下是部分代码:

参数包装器:

回调包装器:

0 投票
1 回答
1422 浏览

java - 如何将不同的回调传递给android中的同一个函数

我是 android 新手,目前正在尝试发出volley post 请求并从 API 获得响应。我所做的是在响应成功时调用回调。如果我从单个类调用此回调工作正常,例如,说MainActivity回调方法,但如果我尝试从其他类调用则不起作用。我试图将 volleyAPIService 中的回调参数设为通用但无法成功。任何形式的帮助都将是可观的。

VolleyAPIService.java

正如我之前所说,我试图使volleyPost()的第一个参数更通用,以便从任何类调用此特定方法,但无法成功。

MainActivity.java

我打电话volleyPost()给回调MainActivity.java

用户登录.java

我也尝试volleyPost()从这个班级打电话。我知道参数回调的类型不匹配,并试图使这两个类的回调参数通用,但我想不出一种方法来做到这一点。

任何形式的帮助都是可观的,并在此先感谢。

0 投票
1 回答
29 浏览

javascript - Javascript 共享具有唯一状态的通用回调

我有一个工作但乏味的代码。

我有 6 个onoff对象来描述 6 个 GPIO 输入。它们都需要注册一个回调[即 obj.watch(callback)] 来检测状态变化。

目前,我的功能代码如下所示

如您所见,例程大多相同,但只需要访问不同的变量。但是,由于 onoff.watch 回调需要一个函数来处理两个参数(错误状态和值),我不知道如何扩展我的回调以使其通用以包含我的状态信息。

是否有设计模式来简化这些回调创建?

0 投票
1 回答
250 浏览

java - 在通用 Cplex 回调中访问分支和切割节点 ID

我有一个使用 Benders 分解分解的优化问题。我实现了一个 Cplex 通用回调(在 JAVA 中),其中包括 Lazy、User 和 Heuristic 回调。现在,我需要添加一些切割管理策略,例如,限制树中每个节点的切割数量。问题是我不知道如何访问当前候选人的节点 ID。如果有人可以提供帮助,我将不胜感激。