SOURCE

console 命令行工具 X clear

                    
>
console
// Array.prototype.reduce1 = function (fn, initValue) {
//     let arr = this
//     let res = initValue || arr[0]
//     for (let i = initValue ? 0 : 1; i < arr.length; i++) {
//         res = fn(res, arr[i], i, arr)
//     }
//     return res
// }

// const a = [].reduce1((pre, cur) => pre + cur, 2)


// console.log(a)

// const arr = [[1,23,4], [[2], 3], 4]

// const arrDfs = list => {
//     return list.reduce((res, cur) => {
//         let curRes = Array.isArray(cur) ? arrDfs(cur) : [cur]
//         return [...res, ...curRes]
// //     }, [])
// // }

// // const result = arrDfs(arr)
// // console.log('res', result)

// class Mypromise {
//     constructor(fn) {
//         this.state = 'pending'
//         this.successCb = []
//         this.failCb = []

//         fn(this.resolve, this.reject)
//     }
//     resolve = value => {
//         if (this.state !== 'pending') {
//             return
//         }
//         this.state = 'success'
//         setTimeout(() => {
//             this.successCb.forEach(fn => fn(value))
//         })
//     }
//     reject = value => {
//         if (this.state !== 'pending') {
//             return
//         }
//         this.state = 'fail'
//         setTimeout(() => {
//             this.failCb.forEach(fn => fn(value))
//         })
//     }
//     then(resolveCb, rejectCb) {
//         return new Mypromise((resolve, reject) => {
//             this.successCb.push((value) => {
//                 let res = resolveCb(value)
//                 res instanceof Mypromise ? res.then(resolve, reject) : resolve(res)
//             })
//             this.failCb.push((value) => {
//                 let res = rejectCb(value)
//                 res instanceof Mypromise ? res.then(resolve, reject) : reject(res)
//             })
//         })
//     }
// }

// const promiseTest = new Mypromise((resolve, reject) => {
//     console.log('promisestart1')
//     setTimeout(() => {
//         resolve('testResolve')
//     }, 2000)
//     console.log('promisestart2')
// })
// promiseTest.then((res) => {
//     console.log('testthen', res)
// })