(封面图片来源于:基于 CC0
协议的 shopify[1])
!!! tip hint important "温馨提示"
周刊中所有高亮的内容都可以点击到指定内容的链接~
如果您正处在微信公众号,请直接滚动至底部👉阅读原文🫶
关键词: Promise
、 React Runtime
、 Web performance
Promise
[2]相关地址:https://webdeveloper.beehiiv.com/p/cancel-promises-javascript
早前的周刊中,其实有说过,优雅的 Promise.race
,但是今天还是拎出来单独分享下:
const buildCancelableTask = <T>(asyncFn: () => Promise<T>) => {
const abortController = new AbortController();
return {
run: () =>
new Promise<T>((resolve, reject) => {
const cancelTask = () => reject(new Error('CanceledError'));
if (abortController.signal.aborted) {
cancelTask();
return;
}
asyncFn().then(resolve, reject);
abortController.signal.addEventListener('abort', cancelTask);
}),
cancel: () => {
abortController.abort();
},
};
};
其实在现代化浏览器中借助 AbortController
还是很好容易实现的。
相关地址:https://ckarchive.com/b/lmuehmh08vwdxid7kkm78cdoo5v00hg
Deno
和 Bun
由营利性公司开发,而 Node.js
是一个非营利组织的社区项目。Deno
和 Bun
中的 Node.js
兼容性非常强,因此大多数 Node.js
应用程序都可以在 Deno
和 Bun
上按原样运行。Deno
或 Bun
进行部署,也请将您的应用程序定位到 Node.js
,以便在必要时轻松切换运行时。以上的三个结论点我还是相当认同的,因为性质不同。
相关地址:https://www.phpied.com/files/location-location/location-location.html
真是牛人,这里就不一一列举了,有兴趣可以点进去观摩观摩。
相关地址:https://www.speedcurve.com/web-performance-guide/
我还是比较推荐小伙伴们进去读一读,内容完全免费,服务是打点监控的。里面详细罗列了性能优化的指标和优化的常规手段。
相关地址:https://github.com/MarketingPipeline/Termino.js/wiki
Termino.js
是一个 JavaScript
库,可用于多种用途,包括但不限于:
CLI
)bash
仿真器等等!)Web
应用程序创建交互式教程或演示Web
开发的调试和测试工具SSH
服务器Web
应用程序构建自定义 shell
或终端Web
应用程序的自定义开发人员工具。相关地址:https://wizardzines.com/git-cheat-sheet.pdf
相关地址:https://www.miao3.cn
可以免费商用的字体,正好自己的破站要换字体,这周试试。
!!! pied-piper "交个朋友吧~"
我是不换(书生),"浪子回头金不换"的不换,"百无一用是书生"的书生,热爱工作,同时在工作之余也热爱开源。
本期周刊到这里就结束了,我们下期再见👋~
[1]
shopify: https://www.shopify.com/stock-photos/photos/long-exposure-at-night-of-streaking-stars-against-landscape
[2]
如何取消 Promise
: https://webdeveloper.beehiiv.com/p/cancel-promises-javascript
[3]
关于 JavaScript 运行时的考虑: https://ckarchive.com/b/lmuehmh08vwdxid7kkm78cdoo5v00hg
[4]
535 中重新加载页面的方法: https://www.phpied.com/files/location-location/location-location.html
[5]
Web 性能优化指南: https://www.speedcurve.com/web-performance-guide/
[6]
Termino.js: https://github.com/MarketingPipeline/Termino.js/wiki
[7]
git cheat sheet: https://wizardzines.com/git-cheat-sheet.pdf
[8]
喵闪字体: https://www.miao3.cn/?page=8