如何深入解析蚂蚁金服25k面试中的异步串行难题?

2026-06-05 00:263阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1384个文字,预计阅读时间需要6分钟。

如何深入解析蚂蚁金服25k面试中的异步串行难题?

前言:朋友去面试蚂蚁金服,遇到一道面试题,题目看起来很简单,但实现起来发现还是有不少值得思考的点。

题目:先看题目:const delay=(ms)=>=new Promise((resolve)=>=setTimeout(resolve, ms));

直接输出结果:const delay=(ms)=> new Promise(resolve=> setTimeout(resolve, ms));

前言

朋友去面试蚂蚁金服,遇到了一道面试题,乍一看感觉挺简单的,但是实现起来发现内部值得一提的点还是挺多的。

先看题目:

const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); const subFlow = createFlow([() => delay(1000).then(() => log("c"))]); createFlow([ () => log("a"), () => log("b"), subFlow, [() => delay(1000).then(() => log("d")), () => log("e")], ]).run(() => { console.log("done"); }); // 需要按照 a,b,延迟1秒,c,延迟1秒,d,e, done 的顺序打印

按照上面的测试用例,实现 createFlow:

  • flow 是指一系列 effects 组成的逻辑片段。
  • flow 支持嵌套。
阅读全文

本文共计1384个文字,预计阅读时间需要6分钟。

如何深入解析蚂蚁金服25k面试中的异步串行难题?

前言:朋友去面试蚂蚁金服,遇到一道面试题,题目看起来很简单,但实现起来发现还是有不少值得思考的点。

题目:先看题目:const delay=(ms)=>=new Promise((resolve)=>=setTimeout(resolve, ms));

直接输出结果:const delay=(ms)=> new Promise(resolve=> setTimeout(resolve, ms));

前言

朋友去面试蚂蚁金服,遇到了一道面试题,乍一看感觉挺简单的,但是实现起来发现内部值得一提的点还是挺多的。

先看题目:

const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); const subFlow = createFlow([() => delay(1000).then(() => log("c"))]); createFlow([ () => log("a"), () => log("b"), subFlow, [() => delay(1000).then(() => log("d")), () => log("e")], ]).run(() => { console.log("done"); }); // 需要按照 a,b,延迟1秒,c,延迟1秒,d,e, done 的顺序打印

按照上面的测试用例,实现 createFlow:

  • flow 是指一系列 effects 组成的逻辑片段。
  • flow 支持嵌套。
阅读全文