We know about `.state`, too!
Added ⭐
Following on from 0.2.0's support for narrowing with .isPending, .isResolved, and .isRejected, TrackedAsyncData instances cab now be "narrowed" by checking the .state property (#6):
import TrackedAsyncData from 'ember-async-data/tracked-async-data';
let data = new TrackedAsyncData(Promise.resolve('string'));
switch (data.state) {
case 'PENDING';
data.value; // null (and a warning for accessing in an invalid state!)
data.error; // null (and a warning for accessing in an invalid state!)
break;
case 'RESOLVED':
data.value; // string
data.error; // null (and a warning for accessing in an invalid state!)
break;
case 'REJECTED':
data.value; // null (and a warning for accessing in an invalid state!)
data.error; // unknown
break;
default:
break;
}Fixed 🛠️
Decorated .state with @dependentKeyCompat so it can be used as a dependent key with classic computed properties.