标签: callback

C++回调函数,什么都不做

我有这样的代码

typedef void(_stdcall * MyProcessor)(int, int);

void FunctionProcess (MyProcessor process){
    MyProcessor myCallback;
    myCallback = (process != NULL)? process:"<functionThatDoesNothing>";
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果参数中没有任何回调函数,我想给myCallback分配一些函数,它不会做任何事情(或者什么东西),因为之后,我在循环中调用这个函数(我会喜欢避免因为管道冲洗而在循环中使用'if'.我尝试了一个没有成功的无操作lambda(不兼容).

有这样的功能吗?还有其他可能性吗?谢谢.

c++ callback

0
推荐指数
1
解决办法
786
查看次数

检查输入是否未更改

可以使用事件检查输入是否未更改change()

我正在使用<input type='file' />,我想警告用户他自己的行为没有变化.

现在,我刚刚做了一个正常的change()事件:

 // fire the thumbnail (img preview)
$("#file-input").on("change", function () {
    readURL(this); // create the thumbnail
});
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Prev Solutuib:

好吧,我找到了一个解决方法,真正的问题是我给用户一个选项来隐藏缩略图,如果他想要,再打开......

但缩略图只会在用户选择图像时打开,这就是问题,因为更改事件会触发此选项打开,因此,如果没有更改,则不会打开缩略图.

所以,当我隐藏缩略图时,我会更改input file 为新的缩略图,使更改事件始终触发.

javascript jquery callback thumbnails

0
推荐指数
1
解决办法
1492
查看次数

如何编写等待3个不同ajax请求响应的事件驱动代码?

我有一个网页,我有3个单独的ajax调用

所有3使用相同的结构:$ .ajax({//这是处理数据和发送邮件url的urp文件:url,

        //POST method is used
        type: "POST",

        //pass the data         
        data: data,     

        //Do not cache the page
        cache: false,

        //success
        success: function (json) {              
Run Code Online (Sandbox Code Playgroud)

我想触发另一个函数,但只有3个单独的ajax调用成功.

我该怎么做呢?

更新:使用$ .when()时我现在遇到问题

我的代码现在看起来像这样:

function mainFunction() {
    $.when(someAjaxCall()).done(function(ajaxResult){
            // after all the pages, covers, and sneaks are uploaded
            // we will now change the status
            //start the ajax
            console.log(ajaxResult);
}

function someAjaxCall() {
    // do something...
    if (someGlobalScopedVariable == true) {
         return $.ajax({
        //this is the php file that processes the data and …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery callback

0
推荐指数
1
解决办法
207
查看次数

回调函数中的PHP变量

我有一个问题.在array_filter中:

$min = 4;
$arr = array(1,2,3,4,5,6,7);
$arr = array_filter($arr,function($e) {
    return $e <= 4;
});
var_dump($arr);
Run Code Online (Sandbox Code Playgroud)

有用.

如果我使用

$min = 4;
$arr = array(1,2,3,4,5,6,7);
$arr = array_filter($arr,function($e) {
    return $e <= $min;//$min variable gives error
});
var_dump($arr);
Run Code Online (Sandbox Code Playgroud)

如何正确,它看到回调中的$ min变量?

谢谢你的提示

php callback

0
推荐指数
1
解决办法
104
查看次数

指向具有不同参数的成员函数的指针的容器

我到处寻找(Modern C++ design&co),但我找不到一种很好的方法来存储一组接受不同参数并在不同类上运行的回调.我需要这个,因为我希望我的应用程序的每个对象都有可能将其中一个方法的执行推迟到一个主Clock对象,跟踪当前时间,可以在正确的时刻调用这些方法.我的目标代码是:

void executeAction1Deferred(int time, int arg1, bool arg2)方法中class1,时间是将来需要的执行时间,应该是这样的:

Clock::defer(time, Class1::action1, this, arg1, arg2);
Run Code Online (Sandbox Code Playgroud)

Clock::defer(??? what signature ????)表示此任务的对象中,存储在优先级队列中,其中时间是密钥.对于每个Clock量程,然后遍历任务列表,并且将执行需要在该量程中运行的任务.请注意,我使用"defer"作为静态函数,因为我打算Clock使用单例的对象,但它也可以是成员函数,它只是选择的问题.

我曾经想过void*用来保存一个可变数量的参数,但让我的action1()方法接受一个void*非常可怕,也因为每次我直接使用这个函数时我都需要为参数创建一个结构而不推迟它.

我过去曾经多次面对这个问题,而且我从未找到过一个非常好的解决方案.请注意,作为一个小型的多平台项目,为缺乏经验的程序员构建简单性可以扩展它是必不可少的,我不想使用boost.但是,我们解决的平台的每个编译器都std::tr1绑定了.问题是:如何定义泛型函数的容器,每个容器接受可变数量的参数(最多N~5),并且是不是从公共虚拟类派生的对象的不同成员方法?谢谢

c++ templates scheduling callback generic-programming

0
推荐指数
1
解决办法
2183
查看次数

jQuery中的AJAX回调返回值处理

我有这个简单的函数从mapquest获取gis数据:

function reverseGeocoding(lat,lng){
    var url = 'http://open.mapquestapi.com/nominatim/v1/reverse?format=json&lat=' + lat + '&lon=' +lng+' &zoom=18&addressdetails=1';
    $.ajax({
        url: url,                       
        crossDomain:true,
        success: function(response){                
            $("#revgeo-place").html(response.display_name);                 
        }
    });

}
Run Code Online (Sandbox Code Playgroud)

如何改进它,以便从另一个函数调用此函数时,返回值是异步更新的?

我不想在函数中明确地放置任何DOM引用,并且我想保持ajax异步,理想情况下应该是这样的:

$("#revgeo-place").html(reverseGeocoding(lat,lng).display_name);

function reverseGeocoding(lat,lng){
    var url = 'http://open.mapquestapi.com/nominatim/v1/reverse?format=json&lat=' + lat + '&lon=' +lng+' &zoom=18&addressdetails=1';
    $.ajax({
        url: url,                       
        crossDomain:true,
        success: function(response){
            console.log(response);
            return response;                                    
        }
    });

}
Run Code Online (Sandbox Code Playgroud)

它看起来当我这样做时,DOM对象不会更新,然后该函数返回响应.

任何想法都会有所帮助谢谢!

javascript ajax jquery return callback

0
推荐指数
1
解决办法
9612
查看次数

在C++中提供对类数据成员的回调函数访问

我在我的项目中使用C++中的opencv库,我在使用MouseCallback时遇到了问题.

我有一个类BoardCalibration,它有两个数据成员,我需要在回调函数中使用它们.你可以在下面看到这个类:

class BoardCalibration{
private:
    Rect _box;  <-- data members i need to upadte inside the callback function
    bool _drawingBox; <--

public:
    BoardCalibration();
    static void my_mouse_callback(int event, int x, int y, int flags, void* param);
    Rect calibrate(Mat& image);
    void drawBox(IplImage* img);
};
Run Code Online (Sandbox Code Playgroud)

在calibrate()方法中,im调用接收回调my_mouse_callback函数的函数.码:

Rect BoardCalibration::calibrate(Mat& image){
    IplImage * img = new IplImage(image);

    namedWindow("Calibration");

    IplImage *temp = cvCloneImage(img);
    cvSetMouseCallback("Calibration", my_mouse_callback, (void *)img);

    while (1){

        imshow("Calibration", Mat(img));
        cvCopyImage(img,temp);

        if( _drawingBox ){
            drawBox(temp);
        }

        imshow("Calibration", Mat(temp));

        if (waitKey(1)>=0)
            break;
    }

    cout << "calibrated\n"; …
Run Code Online (Sandbox Code Playgroud)

c++ opencv callback

0
推荐指数
1
解决办法
2368
查看次数

OpenSSL识别Cookie,以在多个线程中使用DTLS会话/连接验证回调

我在多线程服务器(每个线程的连接)中的cookie生成/验证回调有一些麻烦。据我所知,DTLS东西需要这些回调。我担心的是示例代码对cookie使用了全局变量,如果有很多传入的连接,那么我宁愿使用cookie和连接的哈希。

我有两个问题:

  1. 我应该用这种方式还是有一种更好,更轻松的OpenSSL方式?
  2. 我该如何识别属于特定连接的回调/ cookie?

关于(2),回调(见下文)发生的线程与连接不同,因此我不能将线程ID用作哈希键。回调具有SSL *参数,我敢打赌有某种方法可以从中获取唯一的会话/连接ID,但我不知道如何获取它。我看了看文档,但没有看到任何使用SSL *对象并提供唯一编号的东西,至少从我所知道的方法名称来看。给定这些回调传递的参数后,用连接标识唯一cookie的最佳方法是什么?

我正在根据Robin Seggelmann的示例编写代码。我的东西在这里


2个全局变量:

unsigned char cookie_secret[COOKIE_SECRET_LENGTH];
int cookie_initialized=0;
Run Code Online (Sandbox Code Playgroud)

2个回调使用以下变量:

int generate_cookie(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len) {
    ...
    /* Initialize a random secret */
    if (!cookie_initialized) {
        if (!RAND_bytes(cookie_secret, COOKIE_SECRET_LENGTH))
            ...
Run Code Online (Sandbox Code Playgroud)

int verify_cookie(SSL *ssl, unsigned char *cookie, unsigned int cookie_len) {
    ...
    /* If secret isn't initialized yet, the cookie can't be valid */
    if (!cookie_initialized) return 0;
Run Code Online (Sandbox Code Playgroud)

主服务器循环设置这些回调,并为每个客户端连接打开一个新线程:

void start_server(int port, char …
Run Code Online (Sandbox Code Playgroud)

c multithreading openssl callback

0
推荐指数
1
解决办法
1690
查看次数

如何在javascript中为回调提供执行函数对象实例

我有一个名称空间对象,我在其上定义了一些函数.其中一个函数用于创建到远程服务器的websocket会话.

ns.Session = function(url, config, callback){
   var ws = new WebSocket(url);
   ws.onmessage = function (e){
       if(login(e.data)){
           // This is the point at which I need to pass back the session object to callback
           callback(session):
       }
   }
   ....
}
Run Code Online (Sandbox Code Playgroud)

在JavaScript中,据我知道,如果有人调用使用此功能ns.Session(....),则this对象将是纳秒.那么,我如何获得要发送给回调的"会话" 实例.
arguments.callee据我所知,已被弃用.

我这样做的全部原因是,在服务器确认登录之前,会话不被视为"可用",因此我不希望在实际连接和登录之前过早地返回功能对象.因此使用一个回调.如果有更好的方法来实现这一点,我也对此持开放态度.

会议有一堆的其他内部功能,如addHandler,sendData我还没有在这里显示为简洁起见,等等.

javascript callback javascript-events websocket

0
推荐指数
1
解决办法
107
查看次数

如何将变量传递给回调函数?

我有一个简单的例子:

   for ( i in dbs ) {
       var db = dbs[i].split(':')
       var port = dbs[i][0]
       var host = dbs[i][0]
       var client = redis.createClient( port, host )
       tasks = [ [ "info" ] ]
       client.multi(tasks).exec(function (err, replies ) {
           console.log(port)
       })
Run Code Online (Sandbox Code Playgroud)

如何为每个客户端连接打印相关端口?

javascript callback node.js

0
推荐指数
1
解决办法
82
查看次数