Promise 并发控制

Promise 并发,往往都直接 Promise.all 但如果我想控制并发为 5 怎么破? 问题分析因为 Promise 在插件实例的时候,已经开发执行并发任务了。所以我们没办法在 Promise 实例上做手脚。那么只能在 Promise 实例之前,限制创建 Promise 实例的速度。 再有,采取什么形式限制,也是个问题。我一开始想的是队列(queue) 模式。创建一个异步队列类,统一管理异步队列,这样在添加异步任务的方法上做限制即可。 1234567const q =

Promise 错误处理

Promise 为 js 的异步流程控制处理迈出了一大步。但我一直没用好错误处理。 抛出 error生成一个 Promise 实例有两种方式,一种是 new Promise 还有一种是直接 Promise.resolve 或 Promise.reject。但在 Promise 中抛出错误只有 throw 和 reject 之分。 12345678910111213141516171819202122232425// 创建实例时拒绝new Promise((resolve,

简单爬虫实例 - 爬取B站看板娘服装资源

最近又在网上看到一个 node 爬妹纸图的东西,去看了下源码,写的其实太啰嗦了。其实 node + got + async/await 才是王道。 由于之前做了个 B站看板娘集合 的东西,所以就写个爬虫爬了下直播间。 数据分析先分析下B站直播间的情况,打开全部直播页面 https://live.bilibili.com/all 看下 Network 模板。很容易发现他的数据是 ajax 过来的 https://api.live.bilibili.com/room/v1/ro

分分钟写一个 rollup 小插件

rollup,别问我这是什么鬼,自己去百度不会。// 强行单押rollup,真的好用到飞,打包es6模块必备。// 单押x4 勒是雾都! 前话其实不用去对比 rollup webpack parcel 谁更好,谁更强。所在次元不同,何必呢,大家都可以好好相处的。 我喜欢用 rollup 打包模块,因为他专注于 es6 模块打包。真的好用到哭,打包完的代码非常完美,干净简洁,整体性强,是可读级别的。大名鼎鼎的 react, vue 就是 rollup 打包的。 可见对于模块打

在 vscode 中统一 vue 编码风格

vetur 很多人知道,但在 vscode 下没办法格式化 .vue 里的 html, js 很是头疼,代码风格无法统一。所以不少人直接拆分开,然后在 .vue 中引入,虽然方法很好,但这有违 .vue 单文件组件的初衷。 本文详细介绍 vscode 下使用 vetur + prettier + eslint 来统一 vue 编码风格。 vetur 插件vetur 经过多个版本迭代,算是目前 vscode 下最好用的 vue 插件了,甚至支持 ts, webpack ali

webpack3 编译兼容 IE8- 的正确姿势

接上一篇《关于新版本 webpack gulp 兼容 IE8- 的正确姿势》踩了几次坑后,重新整理下方案。 遇到的问题上一篇中的方法在 webpack 更新后,uglify 缓存地址也发生了变化,需要重新找地址。后来测试发现不论是 uglify-js2 uglify-js3 都是支持 IE8 兼容处理的。但在 webpack.optimize.UglifyJsPlugin 中加配置参数却无效。(webpack 的锅)总不能每次都手动去找 webpack 缓存路径进行劫持吧,

node 请求使用动态 hosts

开发中使用 hosts 司空见惯,但如果一个需求,用户表单输入 hosts 后台使用这个 hosts 去请求,如何用正确的姿势去请求呢? 如果每次都修改 hosts 文件,那,,也许,,不太科学,如果是个临时 hosts 呢?hosts 文件会越来越臃肿,不推荐。 在百度,谷歌无果后 (也许关键词不对,反正没找到),自己尝试了下,却发现异常简单。 hosts demo假设我们要添加如下临时 hosts: 1192.168.1.10 dev.domain.com node 代

塞尔达传说 荒野之息 DLC 更新失败后

塞尔达 DLC2 都已经更新了,让 1 都没购买的我情何以堪。然后淘宝淘了 $20 给 eShop 充上之后就购买了 DLC,接下来就是等待下载了。 PS: 淘宝 $10 = ¥60,有的店新用户¥58。PS: 最好别在美服买游戏,尽量日服购买,否则,欲哭无泪。 非常不幸的遇到下载失败,之前购买《我的世界》时虽然下载慢,但好歹也下载成功了。 失败后,进入游戏,没有 DLC 字样,点击 Downloadable Content 返回后提示下载成功,请重新启动游戏,可是启动

JavaScript in VS Code

众所周知 VS Code 是借助 d.ts 对 js/ts 进行 智能感知(IntelliSense) 精准提示的。官方维护着一个庞大的 DefinitelyTyped 囊括了流行的模块的 d.ts。所以你会发现不论是 js 还是 ts 都可以为流行库进行 智能感知。如果是 ts 项目,也许大家都会操作,但 js 项目想自定义 d.ts 实现 智能感知 怎么破? 官网文档JavaScript in VS Code 百度无果后,在官网翻到了这个,如果英文不错的,推荐直接看文档

js Date 操作之神奇的 date

Date 对象算是较常用的对象之一,但很多人完全不会操作,就算一些简单的操作也用 moment 而不自己尝试一下。 本次分享下 Date 中的 date 使用技巧,希望能给大家启发。 MDN官网介绍setDate() 方法根据本地时间来指定一个日期对象的天数。如果 dayValue 超出了月份的合理范围,setDate 将会相应地更新 Date 对象。例如,如果为 dayValue 指定0,那么日期就会被设置为上个月的最后一天。 获取月份天数12345// 获取月份天数fu