Blog

Zhiyuan Ju's Blog is written in Mandarin or English.

在 Map 遍历中使用 async 函数

在 Map 遍历中使用 async 函数

有时需要使用 Sleep 函数阻塞代码一段时间,该函数常规实现与调用方式如下: // Sleep Function const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))( // Usage async () => { await sleep(3000); } ); 但在 Array.prototype.map 中使用时,却有着错误的表现,具体如下: // code snippet 1 …

聊聊 EventEmitter

聊聊 EventEmitter

场景 存在如下场景:当音频播放器分别处于加载资源、播放音频、播放结束等不同状态时,通过某种机制执行不同操作(如更新 UI 状态)。即通过监听某些对象,当其状态发生变化时,触发不同事件。 上述场景可通过 EventEmitter 实现,该方法至少可对应两种模式:观察者模式与发布/订阅模式。我们先来了解这两种模式: 观察者模式 观察者模式(Observer Pattern)定义了 1:n 关系,使 n 个观察者对象监听某个被观察者对象(主题对象),当被观察者对象状态发生变化时,它将主动通知所有观察者 …

深圳一月有余

深圳一月有余

在深圳生活与工作已一月有余,在此期间学到了四件事: Done is better than perfect 预估排期应考虑多重因素 说到做到,让对方信任自己 分析清楚再动手 有时候针对某些需求,需求方并不要求尽善尽美,而是希望快速完成最小可用版本并持续迭代,至于样式以及交互是否优秀,需求方在早期阶段并不关心。否则在时间比较紧的情况下,自作聪明,用了大量时间去处理边际问题,这在需求方看来是愚蠢的,因此 Done is better than perfect。 同样的,在进行需求排期时,不能仅考 …

freeCodeCamp 访谈丨琚致远:优秀 Web 全栈工程师的成长之路

freeCodeCamp 访谈丨琚致远:优秀 Web 全栈工程师的成长之路

原文:https://chinese.freecodecamp.org/news/fcc-devtalk-ju-zhi-yuan-growth-path-of-an-excellent-full-stack-web-developer/ 本期嘉宾致远,是一位 97 年的小朋友。叫他小朋友是因为他的年纪比我小好几岁,记得之前我们合影的时候他总是有点腼腆地抿着嘴哈哈~自我们 2017 年认识以来,这位小极客的独立、坚韧、认真的品质,始终对世界保持好奇与不断探索的态度,都给我留下深刻的印象,也启发我以 …

freeCodeCamp: The growth path of a full-stack engineer

freeCodeCamp: The growth path of a full-stack engineer

Original: https://chinese.freecodecamp.org/news/fcc-devtalk-ju-zhi-yuan-growth-path-of-an-excellent-full-stack-web-developer/ This time, our guest, Zhiyuan, is a 97-year-old kid. Since we met in 2017, I’ve been impressed by this little …

2011 年的一封邮件

2011 年的一封邮件

昨日凌晨在整理 freeCodeCamp 的 FCC DevTalk 访谈稿,在被问到第一次学习编程是什么时候这个问题时,我突然想到 2011 年 8 月发送的一封邮件。 初中的自己较“活跃”、喜欢交朋友,某日看到校长在办公室手动搜索并整理几十份各个班级的 Excel 表,于是我便想:能否做一个程序帮助他提高办公效率? 于是在初二升初三那年暑假,自己用了接近两个月时间系统地学习了 Visual Basic 编程语言,并使用它开发了一套学生信息管理程序。当然,数据迁移也很方便:打开程序并批量导入按 …