///
import R = require('reactivity')
import PRE = require('./PendingResultError')
import statics = require('./statics')
import util = require('./util')
import reactivity_util = require('./reactivity_util')
/*
This is a tricky feature to implement.
*/
function pending( f:() => T ): boolean {
var res = R.run( f )
reactivity_util.bubbleMonitor( res.monitor )
switch ( PRE.status( res.error ) ){
case PRE.Status.Pending:
statics.informIncomplete( )
return true
case PRE.Status.Ready:
return false
case PRE.Status.Error:
throw res.error
}
}
export = pending