summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/src/actions/README.md
blob: d91924783873e2f87cbdd29ba00bbda8df9d7451 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
## Actions

### Best Practices

#### Scheduling Async Actions

There are several use-cases with async actions that involve scheduling:

* we do one action and cancel subsequent actions
* we do one action and subsequent calls wait on the initial call
* we start an action and show a loading state

If you want to wait on subsequent calls you need to store action promises.
[ex][req]

If you just want to cancel subsequent calls, you can keep track of a pending
state in the store. [ex][state]

The advantage of adding the pending state to the store is that we can use that
in the UI:

* disable/hide the pretty print button
* show a progress ui

[req]: https://github.com/firefox-devtools/debugger/blob/master/src/actions/sources/loadSourceText.js
[state]: https://github.com/firefox-devtools/debugger/blob/master/src/reducers/sources.js