- Mastering Reactive JavaScript
- Erich de Souza Oliveira
- 247字
- 2021-07-09 20:33:08
Properties
Now you know what an EventStream is and how to create it; as discussed, it is an observable. However, bacon.js has another special form of observable called Property. A Property is an EventStream with the concept of current value. You can create a Property from any EventStream using the toProperty() or scan() method; it is especially useful to represent DOM data binding.
To create a Property from an EventStream, you can use the toProperty() method that has the following signature:
eventStream.toProperty(initialValue);
The initialValue parameter is optional. If you decide to omit it, you will have a Property without an initial value. If you pass it, it will be used as the current value of this Property until the first value is emitted from the stream.
The other way to create a Property is using the scan() method. This method is similar to the reduce() method from the JavaScript array object. Given a seed object and accumulator function, the scan() method will iterate over your EventStream to create a Property from the result:
Bacon
.sequentially(100,['a','b','c','d'])
.scan('=> ',(acc,b)=> acc+b)
.onValue((value)=>console.log(value));
In this example, we first create an EventStream from an array of strings, then we call the scan() method to create a Property with a seed value of => , and using a function to concatenate these value, we print the result to the console for each scan iteration. So running this code will give the following output:
=>
=> a
=> ab
=> abc
=> abcd
- Linux設備驅動開發詳解:基于最新的Linux4.0內核
- Linux網絡操作系統與實訓(第三版)
- Linux性能優化
- SharePoint 2013 WCM Advanced Cookbook
- 高性能Linux服務器構建實戰:系統安全、故障排查、自動化運維與集群架構
- Python基礎教程(第3版)
- 直播系統開發:基于Nginx與Nginx-rtmp-module
- Mastering Reactive JavaScript
- Linux命令行大全(第2版)
- Linux基礎使用與案例
- Raspberry Pi入門指南
- Office 365 User Guide
- 應急指揮信息系統設計
- 完美應用Ubuntu(第4版)
- Microsoft DirectAccess Best Practices and Troubleshooting