首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript异步thunk

Javascript异步thunk
EN

Stack Overflow用户
提问于 2016-05-03 11:41:15
回答 3查看 220关注 0票数 0

我试图想出在makeThunk函数中编写的代码,但在这里我无法理解如何在makethunk函数中传递cb的值。

我想在用回调调用thunk之后记录总和值!

我的代码看起来像这样:

代码语言:javascript
复制
"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);
});
EN

回答 3

Stack Overflow用户

发布于 2016-05-03 11:51:03

也许,您正在寻找类似以下内容的内容:

代码语言:javascript
复制
"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);
});
票数 1
EN

Stack Overflow用户

发布于 2016-05-03 11:52:03

您可以使用传递xycb作为参数的Function.prototype.bind()

代码语言:javascript
复制
"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)
}))

票数 0
EN

Stack Overflow用户

发布于 2018-06-30 14:31:33

代码语言:javascript
复制
function makeThunk(...args){
   return function(cb){
      args.push(cb)
      addAsync(...args)
   }
}

只需使用es6中新增的rest/ syntax运算符语法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36995204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档