[Compose] 10. Capture Side Effects in a Task
2024-08-31 20:35:43
We examine the data structure Task, see some constructors, familiar methods, and finally how it captures side effects through laziness.
We using a 'data.task' library. It is a bit similar to $q library in Angular. Accepts one function, function takes two params, 'reject function' & 'resolve function'.
import Task from 'data.task'; const launchMissiles = () =>
new Task((rej, res) => {
console.log('launch missiles!')
res('missile')
})
Because this is laziness, therefore, we can compose logic based on that:
const app = launchMissiles().map(x => x + '!')
app
.map(x => x + '!')
.fork(e => console.error('err', e),
x => console.log('success', x))
If inside 'lauchMissiles' call 'reject' function, all the map function chaining on app won't be called anymore.
'fork' is the actually function which trigger it works.
-----
import Task from 'data.task'; const launchMissiles = () =>
new Task((rej, res) => {
console.log('launch missiles!')
res('missile')
}) const app = launchMissiles().map(x => x + '!') app
.map(x => x + '!')
.fork(e => console.error('err', e),
x => console.log('success', x)) //launch missiles!
success
最新文章
- avl树的操作证明
- Crypto++ 动态链接编译与实例测试
- LeetCode 5 Longest Palindromic Substring(最长子序列)
- 使用TextWatcher监听EditText变化
- [leetcode]_Palindrome Number
- python 内建函数 type() 和 isinstance() 介绍
- QAQ数论模板笔记√
- Tomcat详解
- 《SDN核心技术剖析和实战指南》3.3读书笔记
- stuts1:(Struts)Action类及其相关类
- swift新特性(__nullable和__nonnull
- 文本主题模型之LDA(三) LDA求解之变分推断EM算法
- SSM框架整合环境构建——基于Spring4和Mybatis3
- useBean
- 4.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—目录结构
- GlusterFS分布式存储系统中更换故障Brick的操作记录1
- 把 java web application deploy 到 root
- 怎么隐藏服务器的IP地址?
- stm32的双向io口
- django的用户认证组件