Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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://github.com/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'
]);
});
});