我试图想出在makeThunk函数中编写的代码,但在这里我无法理解如何在makethunk函数中传递cb的值。
我想在用回调调用thunk之后记录总和值!
我的代码看起来像这样:
"use strict";
function addAsync(x,y,cb) {
setTimeout(function () {
cb(x+y);
},1000);
};`enter code here`
var thunk = makeThunk(addAsync,10,15);
function makeThunk(){`enter code here`};
thunk(function(sum){
console.log(sum);
});发布于 2016-05-03 11:51:03
也许,您正在寻找类似以下内容的内容:
"use strict";
function addAsync(x,y,cb) {
setTimeout(function () {
cb(x+y);
},1000);
};
var thunk = makeThunk(10,15);
function makeThunk(num1,num2){
return function(cb) {
addAsync(num1,num2,cb);
}
};
thunk(function(sum) {
console.log(sum);
});发布于 2016-05-03 11:52:03
您可以使用传递x、y和cb作为参数的Function.prototype.bind()
"use strict";
function addAsync(x, y, cb) {
setTimeout(function() {
cb(x + y);
}, 1000);
}
function makeThunk(fn) {
fn()
}
var thunk = makeThunk(addAsync.bind(null, 10, 15, function(sum) {
console.log(sum)
}))
发布于 2018-06-30 14:31:33
function makeThunk(...args){
return function(cb){
args.push(cb)
addAsync(...args)
}
}只需使用es6中新增的rest/ syntax运算符语法
https://stackoverflow.com/questions/36995204
复制相似问题