加载中
ramda 数据流

顺序, 分支, 循环编程语言只需要这三种就能实现各种功能, ramda其实就是将编程语言的语法使用函数进行包装 线性数据流, 使用pipe const R = require("ramda"); const x = 1; // ( 1 + 2 ) * ...

09/21 23:12
0
ramda 日常使用

参考 https://adispring.github.io/ ramda对函数参数的个数要求比较严格, 虽然可以使用R.__占位符, 但是一般情况下还是尽量少用 注意, ramda主要用于数据流而非逻辑流 模拟数组操作, 注意普通...

08/02 19:42
54
ramda 几个 merge 的区别

mergeRight 在遇到键名相等时, 直接将该键设置为第二个参数对应的值 mergeDeepRight 会继续比较相等键里面的对象的值, 然后进行赋值, 直到最深层 表现上的不同就是, mergeRight会丢失前一个对...

07/31 20:13
122
ramda 函数 relation type

查看所有的函数类型 const list = [...document.querySelectorAll('.label.label-category.pull-right')] R.uniq(R.map(i => i.innerText, list)) type const R = require('ramda') // is //...

07/18 22:01
35
ramda 函数 list

函数是那个分类下的取决于其输入的数据类型, 而非输出类型 const R = require('ramda') // adjust // 将数组中指定索引处的值替换为经函数变换的值。 R.adjust(1, R.toUpper, ['a', 'b', 'c...

07/18 21:30
65
ramda 函数 Object

函数式的语义性相当精准, 就一个merge都有好几种 对于属性区分也很明确, 是对象本身的还是原型链上的都有不同的函数名表达出这种不一致 由此带来的当然也是记忆力的挑战, 这么单纯的过一遍感...

07/18 17:32
23
ramda 函数 Function

太多了... 去除废弃和不常用的也比rxjs多太多了 pipeWith 在管道中对每次流通的数据进行处理, 避免出现空值, 或者处理Promise const R = require('ramda') const pipeWhileNotNil = R.pipeWi...

07/18 14:16
62
Functor(函子)、Monad(单子)、Applicative

还是有点懵逼 ... 函数式编程的主要思想是流程先行, 而非数据先行, 先指定流程, 然后输入数据, 所以操作的数据总是在参数的最后, 并非传统的面向数据的编程方式, 把数据放到前面进行后续操作...

07/14 08:45
104
rxjs6 模拟实现爬虫

使用rxjs模拟爬虫 首先确定一个接口方法, 该方法随机[0,3]s 完成接口请求 源数据默认16条, 每组4个, 分为4组 使用promise.all用时总计为四组中每组最长时间之和 const {range, from, of} = ...

02/23 22:32
120
rxjs6 使用 fromEventPattern 封装 readline 逐行读取文件

使用场景 有一个很大的文件500M左右, 需要将里面的数据读出来, 进行处理, python有直接可以读行的函数, js的回调方式写起来很不舒服, 在这里使用rxjs封装一下 封装一个函数, 传入文件地址, 然...

02/23 12:11
534
rxjs6 Subject

Subject 和 Observable 都可以用来自定义流 const subject = new Subject(); subject.subscribe({ next: (v) => console.log(`observerA: ${v}`) }); subject.subscribe({ next: (v) => cons...

02/12 17:42
204
rxjs6 控制虚线长度

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="./rxjs.umd.js"></script> <style> .box { } </style> </head> <body> <i......

02/10 16:52
70
rxjs6 自动补全

自动补全 / 智能提示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="./rxjs.umd.js"></script> <style> .info { border: 1p......

02/10 16:50
129
rxjs6 区分单击和双击

同一元素, 区分单击还是双击, 采取不同的行为 会造成单击判定稍微延迟, 因为第一次点击成功后只有在延时之后不进行再次点击才能判断为单击 <!DOCTYPE html> <html lang="en"> <head> <meta ...

02/10 16:48
234
rxjs6 拖拽接龙

效果 参考其他博客, 使用rxjs6实现拖拽接龙 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="./rxjs.umd.js"></script> <style> .box ....

02/10 16:21
68
rxjs6 简单拖拽

效果 使用rxjs为dom添加拖拽 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="./rxjs.umd.js"></script> <style> .box { width......

02/10 16:17
94
rxjs6 Utility Operators

Utility Operators tap 用于执行副作用的函数 interval(100).pipe( take(3), tap(v => console.log('tap', v)) ).subscribe(v => console.log('sub', v)) // tap 0 // sub 0 // tap 1 // sub...

02/10 15:52
91
rxjs6 Multicasting Operators & Error Handling Operators

Multicasting Operators multicast 多次订阅, 后订阅的数值依然是从头开始的 let s = interval(300) s.subscribe(v => console.log('s1', v)) setTimeout( () => s.subscribe(v => console....

02/10 14:55
81
rxjs6 Filtering Operators

debounce / debounceTime 防抖, 一直输入的情况下, 只有输入间隔大于200ms时发送数据, 减少无用请求数 change$.pipe( debounce(() => interval(200)) ).subscribe(console.log) change$.pip...

02/10 14:00
69
rxjs6 Transformation Operators

buffer 缓存源流的数据, 在内层发出数据时, 将外层缓存的数据发出 let s1 = interval(1000) let s2 = interval(300) s2.pipe( buffer(s1) ).subscribe(console.log) // [ 0, 1, 2 ] // [ 3,...

02/10 12:53
183

没有更多内容

加载失败,请刷新页面

返回顶部
顶部