[MST] Use Volatile State and Lifecycle Methods to Manage Private State
2018-01-31 02:56
741 查看
MST has a pretty unique feature: It allows you to capture private state on models, and manage this state by using lifecycle hooks. For example by setting up a WebSocket connection and disposing of the connection automatically as soon as the instance gets removed from the store. In this lesson, we will leverage cancellable fetches to abort in-flight requests when appropriate
In this lesson you will learn:
Aborting window.fetch requests :-).
Storing private, volatile, internal state in the function closure
A second life-cycle hook: beforeDestroy
The whole point for this post is showing how to abort fetch request:
https://developer.mozilla.org/en-US/docs/Web/API/AbortController
In this lesson you will learn:
Aborting window.fetch requests :-).
Storing private, volatile, internal state in the function closure
A second life-cycle hook: beforeDestroy
The whole point for this post is showing how to abort fetch request:
export const Group = types .model({ users: types.map(User) }) .actions(self => { let controller return { afterCreate() { self.load() }, load: flow(function* load() { controller = window.AbortController && new window.AbortController() try { const response = yield window.fetch(`http://localhost:3001/users`, { signal: controller && controller.signal }) applySnapshot(self.users, yield response.json()) console.log("success") } catch (e) { console.log("aborted", e.name) } }), reload() { if (controller) controller.abort() self.load() }, beforeDestroy() { if (controller) controller.abort() } } })
https://developer.mozilla.org/en-US/docs/Web/API/AbortController
相关文章推荐
- win8: Manage app lifecycle and state 管理生命周期和状态
- How to Manage and Use LVM (Logical Volume Management) in Ubuntu In our previous article we told you
- React中文文档之State and Lifecycle
- [MST] Create Dynamic Types and use Type Composition to Extract Common Functionality
- How to invoke the method of managed bean and render view in JSF when we are outside the lifecycle of JSF
- How to Use Postman to Manage and Execute Your APIs
- [systemd]How To Use Systemctl to Manage Systemd Services and Units
- How To Use XDOLoader to Manage, Download and Upload Files? (DOC ID 469585.1)
- React官方文档--State and Lifecycle
- How to use GET and POST methods in HTTP from a MIDlet
- (转)How to Use Elasticsearch, Logstash, and Kibana to Manage MySQL Logs
- [React] Use React Context to Manage Application State Through Routes
- [转]Use PowerShell to Manage Lists, Views, and Items in SharePoint(使用PowerShell管理列表、视图、列表项)
- How To Use XDOLoader to Manage, Download and Upload Files? (文档 ID 469585.1)
- how-to-use-ps-kill-and-nice-to-manage-processes-in-linux
- React 官方文档初释义 —— State and Lifecycle(四)
- How to Setup and Secure Linux SSH Logins to use Private PEM Keys
- Use reflector to access and modify private parameter
- [Mobx] Use MobX actions to change and guard state
- Spring Bean Life Cycle Methods – InitializingBean, DisposableBean, @PostConstruct, @PreDestroy and *Aware interfaces