Передайте параметр в функцию обратного вызова gadget.io.makeRequest - PullRequest
1 голос
/ 30 ноября 2010

Я хотел бы передать параметр в функцию обратного вызова gadget.io.MakeRequest.Это вообще возможно?

function MyRequest(param){
...
gadget.io.makeRequest(url, callback, opt_params, param);
...
}

function callback(result,param)
{
    eval("param(result)");
}

if (a==1)
  MyRequest(mycbk1);
if (a==2)
  MyRequest(mycbk2);

function mycbk1(result){
  // handle results of makeRequest when a==1
}
function mycbk21(result){
 // handle results of makeRequest when a==1
}

1 Ответ

1 голос
/ 30 ноября 2010

Одна из возможностей - обернуть вашу функцию обратного вызова в анонимную функцию, например так:

function MyRequest(param){
    ...
    gadget.io.makeRequest(
        url, 
        function(result) { callback(result, param); }, 
        opt_params);
    ...
}

Когда запрос гаджета завершится, анонимная функция будет вызываться с result в качестве единственного аргумента.Впоследствии анонимная функция вызывает вашу функцию callback с аргументами result и param.

...