如何使用回调的结果并将该结果传递给下一个回调?

问题描述 投票:0回答:0

所以我的函数接受一个值和任意数量的回调 参数(我应该使用扩展运算符吗?)。该函数应返回通过所有给定回调传递值的最终结果。

let chainMap = function(num, cb1, cb2, cb3) {
  if(cb2 && cb3 === undefined){
     let res1 = cb1(num);
      return res1;
  } else if(cb3 === undefined){
     let res2 = cb2(res1);
      return res2;
  } else {
      let res3 = cb3(res2);
      return res3;
  }  
      
};

let add5 = function(n) {
    return n + 5;
};

let half = function(n) {
    return n / 2;
};

let square = function(n) {
    return n * n;
};

console.log(chainMap(25, add5));                // 30
console.log(chainMap(25, add5, half));          // 15
console.log(chainMap(25, add5, half, square));  // 225
console.log(chainMap(4, square, half));         // 8
console.log(chainMap(4, half, square));         // 4

我返回的“cb2(res1)”不是一个函数。如何将第一次回调的结果传递给下一次回调?

javascript function callback
© www.soinside.com 2019 - 2024. All rights reserved.