// 实现一个compose 函数
// 特点:
// compose的参数是函数,返回的也是一个函数
// 因为除了第一个函数的接受参数,其他函数的接受参数都是上一个函数的返回值,所以初始函数的参数是多元的,而其他函数的接受值是一元的
// compsoe函数可以接受任意的参数,所有的参数都是函数,且执行方向是自右向左的,初始函数一定放到参数的最右面
// let compose = function(...args) {
// let len = args.length;
// // console.log(len);
// let count = len - 1;
// let result;
// return function f1(...args1) {
// result = args[count].apply(this, args1);
// if(count <= 0) {
// count = len - 1;
// return result;
// }
// else {
// count--;
// return f1.call(null, result);
// }
// }
// }
// const b = (x, y) => x + y;
// const a = x => x * x;
// const c = compose(a, b);
// let result = c(1, 2);
// console.log(result);
// 实现sleep(2000).then(() => {
//do something
// })
// function sleep(ms) {
// return new Promise((resolve, reject) => {
// setTimeout(resolve, ms, 'done');
// })
// }
// sleep(2000).then((res) => {
// console.log(res);
// })
console