如何设计一个高并发、低延迟的异步串行系统,实现蚂蚁金服25k面试题中的复杂业务逻辑?

2026-04-01 17:150阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何设计一个高并发、低延迟的异步串行系统,实现蚂蚁金服25k面试题中的复杂业务逻辑?

前言:朋友去面试蚂蚁金服,遇到了一道面试题。题目看起来很简单,但实现起来发现内部值值得深思。先看题目: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 支持嵌套。
  • effects 的执行只需要支持串行。
阅读全文

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

如何设计一个高并发、低延迟的异步串行系统,实现蚂蚁金服25k面试题中的复杂业务逻辑?

前言:朋友去面试蚂蚁金服,遇到了一道面试题。题目看起来很简单,但实现起来发现内部值值得深思。先看题目: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 支持嵌套。
  • effects 的执行只需要支持串行。
阅读全文