美文网首页前端面试题
发车函数(callback取值)

发车函数(callback取值)

作者: 千茉紫依 | 来源:发表于2019-04-01 10:40 被阅读0次

黄小明是老司机了,他每天任务就是送一群人去上班。但是每天送的人数不一样,这些人上车的时间也不一样。小明总是要等到人齐才能开车。

完成函数 driveCustomers,它接受不定数量的参数,这是参数都是函数,每个函数代表一个人。这些函数都接受一个回调函数作为参数,当回调函数被调用的时候说明这个人已经上车了,回调函数会被传入人名。例如:

const MissLi = (callback) => {
  setTimeout(() => {
    callback('MissLi')
  }, 10) // 上车时间不一定
}

const MrWang = (callback) => {
  setTimeout(() => {
    callback('MrWang')
  }, 3) // 上车时间不一定
}

// ..

driveCustomers(MissLi, MarWang, ...)

请你完成 driveCustomers 函数,它的作用是:当人都到齐以后,按上车的时间顺序把人名放到一个数组里面然后传给 drive 函数,正式开车。例如:drive(['MrWang', 'MissLi'])。

你只需要完成 driveCustomers 函数,drive 函数已经可以直接使用。

答案
这个题目我主要卡在对callback的处理上,这里callback(name)使用(name)=>{ resolve(r.push(name)) }函数对其重新定义, 当setTimeout中的callback执行时,会把name值动态加载过来,在外部数组r中进行保存后然后返回,这样我们得到了一个关于fn的Promise链,当其在Promise.all执行完毕后,就得到了满足条件的r

    const driveCustomers =async (...args) => {
            let r=[]
            let upArr = args.map(fn => {
                return new Promise((resolve, rej) => {
                    fn((name)=>{
                       resolve(r.push(name))
                    })
                });
            });
            await Promise.all(upArr)
            return drive(r)
        };

相关文章

  • 发车函数(callback取值)

    黄小明是老司机了,他每天任务就是送一群人去上班。但是每天送的人数不一样,这些人上车的时间也不一样。小明总是要等到人...

  • Callback、Promise、async/await

    一、Callback回调函数例子: callback函数应用举例: 就是通过callback回调函数来传回数据 缺...

  • 【Python】-016-函数-回调

    callback,在函数A中将另一个函数作为参数 callback,函数A中调用callback,执行完后在返回...

  • Promise与Callback函数

    Promise与callback函数处理 异步 对比 1,callback函数处理异步:代码逻辑复杂,可读性差--...

  • Promise与callback函数处理 异步对比

    Promise与callback函数处理 异步 对比 1,callback函数处理异步:代码逻辑复杂,可读性差--...

  • PHP输出控制函数

    PHP输出控制函数 ob_start ([ callback $output_callback [, int $c...

  • thunk

    thunk 是 一个函数 这个函数只有一个参数是callback函数,且callback函数的第一个参数时error 如

  • 回调函数

    这里的callback参数,接收的就是一个函数,而这个函数就是回调函数 例:这里的callback接收的就是(nu...

  • 取值函数

    data: i_data1 type p decimals 2. write:/ i_data1. data: i...

  • 将CallBack改写成Promise

    CallBack回调函数是js的特色之一, 但CallBack回调方法, 非常容易造成回调地狱(callback ...

网友评论

    本文标题:发车函数(callback取值)

    本文链接:https://www.haomeiwen.com/subject/dupmbqtx.html