将参数传递给Promise回调中的命名函数

时间:2019-07-05 09:50:39

标签: javascript jquery callback parameter-passing jquery-deferred

this code开始:

delay(2000).done(log);

function delay(t){
    var dfd = $.Deferred();
    setTimeout(dfd.resolve,t,t);
    return dfd.promise();
}

function log(txt){
    $('body').append(txt);
}

如何将其他参数传递给log函数?我想避免使用intermediate anonymous functions的冗长性:

delay(2000).done(function(t){log("The delay has been: ", t)});

function delay(t){
    var dfd = $.Deferred();
    setTimeout(dfd.resolve,t,t);
    return dfd.promise();
}

function log(txt1,txt2){
    $('body').append(txt1);
    $('body').append(txt2);
}

类似this的操作失败(未定义t):

delay(2000).done(log("The delay has been: ", t));

function delay(t){
    var dfd = $.Deferred();
    setTimeout(dfd.resolve,t,t);
    return dfd.promise();
}

function log(txt1,txt2){
    $('body').append(txt1);
    $('body').append(txt2);
}

有一些传递附加参数的方法,可以避免使用匿名函数?

感谢您的时间。

0 个答案:

没有答案