2019-03-25
描述
将使用数组为参数的函数修改为使用可变参数的函数。
提示
- 接受该函数 fn 为参数并返回一个闭包函数
- 闭包函数使用扩展运算符将所有输入作为数组传入 fn 函数中。
代码
const collectInto = fn => (...args) => fn(args);
示例
对多个异步请求的返回进行输出处理:
const p1 = Promise.resolve(1);
const p2 = new Promise(resolve => setTimeout(resolve, 2000, 2));
const Pall = collectInto(Promise.all.bind(Promise));
Pall(p1, p2).then(console.log); // 2 秒后输出 [1, 2],等同于 Promise.all([p1, p2]).then(console.log)