资讯专栏INFORMATION COLUMN

一道常见的面试题

Heier / 676人阅读

摘要:面试题题目页面上有一个输入框,两个按钮,按钮和按钮,点击或者分别会发送一个异步请求,请求完成后,结果会显示在输入框中。

面试题题目
页面上有一个输入框,两个按钮,A按钮和B按钮,点击A或者B分别会发送一个异步请求,请求完成后,结果会显示在输入框中。

题目要求,用户随机点击A和B多次,要求输入框显示结果时,按照用户点击的顺序显示,举例:

用户点击了一次A,然后点击一次B,又点击一次A,输入框显示结果的顺序为先显示A异步请求结果,再次显示B的请求结果,最后再次显示A的请求结果。

思考

当时被问到的时候,几个想法

写个高阶函数,处理异步请求

怎么保证顺序,我是想将其放入数组中,然后按顺序执行

当时也没写出来,但觉得很有意思。回去思考实践来一下

代码:

/**
 * A的请求;pA(promise对象)
 * B的请求;pA(promise对象)
 * @click 事件函数 handler
 */
let arr = []
let it
function* main() {
    //进来的是pA,pB封装后的方法
    const data = yield arr.unshift()()
    if(arr.length > 0) {
        it = main()
        it.next()
    }
}
it = main()
//封装pA,pB的请求
function pn(promise) {
    return promise.then(res => it.next(res))
}
//当点击按钮发送请求时,将相应的请求加入数组中
function handler(pn) {
    arr.push(pn)
    //数组不为空说明请求触发中
    if(arr.length = 0) {
        it.next()
    }
}

说明

点击按钮时,先发放入请求;数组为空说明,还没执行;就先执行;不为空,则加入数组中,等待执行

利用迭代器,遍历数组,执行请求

封装函数fn,思路来自之前看的Generator的异步请求方式

总结

以上是我自己思路,觉得蛮有意思的。写下来记录一下

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105474.html

相关文章

  • 一道简单js继承面试来查考你是否真透彻了解继承

    摘要:但这两个对象的原型指向了同一个实例对象,这个实例对象同样是存在栈内存中的然后指向了一个对象。实际是在的实例对象增加一个属性,并将属性赋值为,但它并没有修改原型链上的属性。侧重理解的指向问题 直接先贴题目吧 function A() { this.name = a this.color = [green, yellow] } function B() { ...

    jcc 评论0 收藏0
  • 从简历被拒到收割今日头条 offer,我用一年时间破茧成蝶!

    摘要:正如我标题所说,简历被拒。看了我简历之后说头条竞争激烈,我背景不够,点到为止。。三准备面试其实从三月份投递简历开始准备面试到四月份收,也不过个月的时间,但这都是建立在我过去一年的积累啊。 本文是 无精疯 同学投稿的面试经历 关注微信公众号:进击的java程序员K,即可获取最新BAT面试资料一份 在此感谢 无精疯 同学的分享 目录: 印象中的头条 面试背景 准备面试 ...

    tracymac7 评论0 收藏0
  • 从简历被拒到收割今日头条 offer,我用一年时间破茧成蝶!

    摘要:正如我标题所说,简历被拒。看了我简历之后说头条竞争激烈,我背景不够,点到为止。。三准备面试其实从三月份投递简历开始准备面试到四月份收,也不过个月的时间,但这都是建立在我过去一年的积累啊。 本文是 无精疯 同学投稿的面试经历 关注微信公众号:进击的java程序员K,即可获取最新BAT面试资料一份 在此感谢 无精疯 同学的分享目录:印象中的头条面试背景准备面试头条一面(Java+项目)头条...

    wdzgege 评论0 收藏0
  • 简单说 一道JS闭包面试

    摘要:说明最近看到这样一段代码问三行的输出分别是什么觉得有点意思,和大家一起来聊聊。说到这里,这道题基本上可以解决了,希望大家能听明白我上面说的话,下面的就简单了。 说明 最近看到这样一段代码 function fun(n,o){ console.log(o); return { fun:function(m){ return fun...

    mushang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<