A promise object is a "machine" holding one of two states:
A settled state is the deffered result of the promise. This state will be either (a) rejected or (b) resolved. The rejected state throws an error and the fulfilled state returns either null or a value.
An action object describes changes to the store. Actions are the only source of information for the store.
Promise middleware dispatches "asynchronous" action objects describing the state of the promise:
- 1.Pending action
- 2.Fullfilled or rejcted action (settled)
This affords asynchronous updates to the store.
Another way of thinking of this is promise middleware abstracts the two states of an promise object to two action objects.