SOURCE

const api = {
    f1(){},
    f2(){},
    f3(){}
}
// const f1 = async () => {
//     const data = await api.f1()
//     // .....一些数据处理
//     return Promise.resolve()
// }

// const f2 = async () => {
//      const data = await api.f2()
//     // .....一些数据处理
//     return Promise.resolve()
// }

// const f3 = async () => {
//      const data = await api.f3()
//     // .....一些数据处理
//     return Promise.resolve()
// }

// const fn = Promise.resolve(f1())
// .then(() => f2)
// .then(() => f3())
// .catch(err => {
//     console.log('err', err)
// })

function handleSyncFn(arr) {
    if (!arr.length) {
        throw new Error('请传入一个数组')
    }
    let str = `Promise.resolve(${arr[0]()})`
    arr.forEach((item, index) => {
        if (index > 0) {
            str += `.then(()=>(${item})())`
        }
    })
    str += `.catch(err => {console.log(err, 'error')})`
    eval(str)
}

handleSyncFn([f1, f2, f3])



// const f1 = () => {
//     console.log('f1')
// }

// const f2 = () => {
//     console.log('f2')
// }

// const f3 = () => {
//     throw new Error('hahahah')
//     console.log('f3')
// }

console 命令行工具 X clear

                    
>
console