gpt4 book ai didi

带参数的Javascript回调函数?

转载 作者:行者123 更新时间:2023-11-29 16:19:40 27 4
gpt4 key购买 nike

我有这个简单的代码:

console.log('calling doWork func...')
doWork('a', 'b', myCb);

function doWork(param1, param2, callback)
{
console.log('in func')
callback();
}


function myCb(a)
{
console.log('in callback... for value ' + a)
}

我正在运行带有回调函数的函数 -

我得到的输出是:

"calling doWork func..."
"in func"
"in callback... for value undefined" // notice the undefined

一切正常。

现在,我希望使用指定的参数调用回调 - 类似于(这是不正确的,因为 () 正在执行 func):

doWork('a', 'b', myCb('xxxx'));

我希望输出为:

in callback... for value  xxxx

如何在 doWork('a', 'b', myCb); 中使用 myCb 调用发送参数? ('运行回调函数时,请按xxxx值运行')

有什么帮助吗?

附注我想避免任何全局标志解决方案

谢谢。

最佳答案

常见的解决方案是就地创建另一个函数。

doWork('a', 'b', function () {
myCb('xxxx');
});

您还可以使用一个函数来抽象 currying离开。 JavaScript (ES5) 甚至有一个内置的 – Function.prototype.bind .请注意, native bind 会使您的回调变慢并且在浏览器中的支持有限(请参阅 MDN 页面)。

doWork('a', 'b', myCb.bind(null, 'xxxx'));

关于带参数的Javascript回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11644206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com