function notifyCallbacks(asyncValue, err, value) {
  var callbacks = asyncValue.___callbacks;
  if (callbacks) {
    // clear out the registered callbacks (we still have reference to the original value)
    asyncValue.___callbacks = undefined;

    // invoke all of the callbacks and use their scope
    for (var i = 0; i < callbacks.length; i++) {
      // each callback is actually an object with "scope and "callback" properties
      var callback = callbacks[i];
      callback(err, value);
    }
  }
}
The state of the data holder (STATE_INITIAL, STATE_RESOLVED, or STATE_REJECTED)