Skip to content

Commit

Permalink
Merge pull request #2276 from spicyj/asap
Browse files Browse the repository at this point in the history
Rename ReactUpdates.setImmediate to 'asap'
  • Loading branch information
zpao committed Oct 7, 2014
2 parents f48954d + a8fff93 commit 8883d0f
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 35 deletions.
6 changes: 3 additions & 3 deletions src/browser/ui/dom/components/ReactDOMInput.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,10 @@ var ReactDOMInput = ReactCompositeComponent.createClass({
if (onChange) {
returnValue = onChange.call(this, event);
}
// Here we use setImmediate to wait until all updates have propagated, which
// Here we use asap to wait until all updates have propagated, which
// is important when using controlled components within layers:
// https:/facebook/react/issues/1698
ReactUpdates.setImmediate(forceUpdateIfMounted, this);
ReactUpdates.asap(forceUpdateIfMounted, this);

var name = this.props.name;
if (this.props.type === 'radio' && name != null) {
Expand Down Expand Up @@ -169,7 +169,7 @@ var ReactDOMInput = ReactCompositeComponent.createClass({
// If this is a controlled radio button group, forcing the input that
// was previously checked to update will cause it to be come re-checked
// as appropriate.
ReactUpdates.setImmediate(forceUpdateIfMounted, otherInstance);
ReactUpdates.asap(forceUpdateIfMounted, otherInstance);
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/browser/ui/dom/components/ReactDOMSelect.js
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ var ReactDOMSelect = ReactCompositeComponent.createClass({
}

this._pendingValue = selectedValue;
ReactUpdates.setImmediate(updateWithPendingValueIfMounted, this);
ReactUpdates.asap(updateWithPendingValueIfMounted, this);
return returnValue;
}

Expand Down
2 changes: 1 addition & 1 deletion src/browser/ui/dom/components/ReactDOMTextarea.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ var ReactDOMTextarea = ReactCompositeComponent.createClass({
if (onChange) {
returnValue = onChange.call(this, event);
}
ReactUpdates.setImmediate(forceUpdateIfMounted, this);
ReactUpdates.asap(forceUpdateIfMounted, this);
return returnValue;
}

Expand Down
28 changes: 14 additions & 14 deletions src/core/ReactUpdates.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ var mixInto = require('mixInto');
var warning = require('warning');

var dirtyComponents = [];
var setImmediateCallbackQueue = CallbackQueue.getPooled();
var setImmediateEnqueued = false;
var asapCallbackQueue = CallbackQueue.getPooled();
var asapEnqueued = false;

var batchingStrategy = null;

Expand Down Expand Up @@ -172,18 +172,18 @@ var flushBatchedUpdates = ReactPerf.measure(
// ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents
// array and perform any updates enqueued by mount-ready handlers (i.e.,
// componentDidUpdate) but we need to check here too in order to catch
// updates enqueued by setState callbacks and setImmediate calls.
while (dirtyComponents.length || setImmediateEnqueued) {
// updates enqueued by setState callbacks and asap calls.
while (dirtyComponents.length || asapEnqueued) {
if (dirtyComponents.length) {
var transaction = ReactUpdatesFlushTransaction.getPooled();
transaction.perform(runBatchedUpdates, null, transaction);
ReactUpdatesFlushTransaction.release(transaction);
}

if (setImmediateEnqueued) {
setImmediateEnqueued = false;
var queue = setImmediateCallbackQueue;
setImmediateCallbackQueue = CallbackQueue.getPooled();
if (asapEnqueued) {
asapEnqueued = false;
var queue = asapCallbackQueue;
asapCallbackQueue = CallbackQueue.getPooled();
queue.notifyAll();
CallbackQueue.release(queue);
}
Expand Down Expand Up @@ -237,14 +237,14 @@ function enqueueUpdate(component, callback) {
* Enqueue a callback to be run at the end of the current batching cycle. Throws
* if no updates are currently being performed.
*/
function setImmediate(callback, context) {
function asap(callback, context) {
invariant(
batchingStrategy.isBatchingUpdates,
'ReactUpdates.setImmediate: Can\'t enqueue an immediate callback in a ' +
'context where updates are not being batched.'
'ReactUpdates.asap: Can\'t enqueue an asap callback in a context where' +
'updates are not being batched.'
);
setImmediateCallbackQueue.enqueue(callback, context);
setImmediateEnqueued = true;
asapCallbackQueue.enqueue(callback, context);
asapEnqueued = true;
}

var ReactUpdatesInjection = {
Expand Down Expand Up @@ -286,7 +286,7 @@ var ReactUpdates = {
enqueueUpdate: enqueueUpdate,
flushBatchedUpdates: flushBatchedUpdates,
injection: ReactUpdatesInjection,
setImmediate: setImmediate
asap: asap
};

module.exports = ReactUpdates;
32 changes: 16 additions & 16 deletions src/core/__tests__/ReactUpdates-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -749,18 +749,18 @@ describe('ReactUpdates', function() {
expect(callbackCount).toBe(1);
});

it('calls setImmediate callbacks properly', function() {
it('calls asap callbacks properly', function() {
var callbackCount = 0;
var A = React.createClass({
render: function() {
return <div />;
},
componentDidUpdate: function() {
var component = this;
ReactUpdates.setImmediate(function() {
ReactUpdates.asap(function() {
expect(this).toBe(component);
callbackCount++;
ReactUpdates.setImmediate(function() {
ReactUpdates.asap(function() {
callbackCount++;
});
expect(callbackCount).toBe(1);
Expand All @@ -775,7 +775,7 @@ describe('ReactUpdates', function() {
expect(callbackCount).toBe(2);
});

it('calls setImmediate callbacks with queued updates', function() {
it('calls asap callbacks with queued updates', function() {
var log = [];
var A = React.createClass({
getInitialState: () => ({updates: 0}),
Expand All @@ -785,18 +785,18 @@ describe('ReactUpdates', function() {
},
componentDidUpdate: function() {
if (this.state.updates === 1) {
ReactUpdates.setImmediate(function() {
ReactUpdates.asap(function() {
this.setState({updates: 2}, function() {
ReactUpdates.setImmediate(function() {
log.push('setImmediate-1.2');
ReactUpdates.asap(function() {
log.push('asap-1.2');
});
log.push('setState-cb');
});
log.push('setImmediate-1.1');
log.push('asap-1.1');
}, this);
} else if (this.state.updates === 2) {
ReactUpdates.setImmediate(function() {
log.push('setImmediate-2');
ReactUpdates.asap(function() {
log.push('asap-2');
});
}
log.push('didUpdate-' + this.state.updates);
Expand All @@ -811,16 +811,16 @@ describe('ReactUpdates', function() {
// We do the first update...
'render-1',
'didUpdate-1',
// ...which calls a setImmediate and enqueues a second update...
'setImmediate-1.1',
// ...which runs and enqueues the setImmediate-2 log in its didUpdate...
// ...which calls asap and enqueues a second update...
'asap-1.1',
// ...which runs and enqueues the asap-2 log in its didUpdate...
'render-2',
'didUpdate-2',
// ...and runs the setState callback, which enqueues the log for
// setImmediate-1.2.
// asap-1.2.
'setState-cb',
'setImmediate-2',
'setImmediate-1.2'
'asap-2',
'asap-1.2'
]);
});
});

0 comments on commit 8883d0f

Please sign in to comment.