An AsyncObservable cannot return a value from its getter if resolve has already been called.
That means the observable below cannot be used to toggle from 0 to 1 and then back to 0:
var asyncObs = new AsyncObservable(function(lastSet, resolve){
if (value.get() === 1) {
resolve(1);
}
return 0;
});