Move immediates to React batchedUpdates
Reviewed By: @jspahrsummers Differential Revision: D2484935
This commit is contained in:
parent
ca007aabb4
commit
4c74f01b85
|
@ -83,11 +83,19 @@ class MessageQueue {
|
||||||
'__callFunction' : '__invokeCallback';
|
'__callFunction' : '__invokeCallback';
|
||||||
guard(() => this[method].apply(this, call.args));
|
guard(() => this[method].apply(this, call.args));
|
||||||
});
|
});
|
||||||
BridgeProfiling.profile('ReactUpdates.batchedUpdates()');
|
|
||||||
|
this.__callImmediates();
|
||||||
});
|
});
|
||||||
BridgeProfiling.profileEnd();
|
|
||||||
|
// batchedUpdates might still trigger setImmediates
|
||||||
|
while (JSTimersExecution.immediates.length) {
|
||||||
|
ReactUpdates.batchedUpdates(() => {
|
||||||
|
this.__callImmediates();
|
||||||
});
|
});
|
||||||
return this.flushedQueue();
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return this.__flushedQueue();
|
||||||
}
|
}
|
||||||
|
|
||||||
callFunctionReturnFlushedQueue(module, method, args) {
|
callFunctionReturnFlushedQueue(module, method, args) {
|
||||||
|
@ -101,17 +109,25 @@ class MessageQueue {
|
||||||
}
|
}
|
||||||
|
|
||||||
flushedQueue() {
|
flushedQueue() {
|
||||||
BridgeProfiling.profile('JSTimersExecution.callImmediates()');
|
this.__callImmediates();
|
||||||
guard(() => JSTimersExecution.callImmediates());
|
return this.__flushedQueue();
|
||||||
BridgeProfiling.profileEnd();
|
|
||||||
let queue = this._queue;
|
|
||||||
this._queue = [[],[],[]];
|
|
||||||
return queue[0].length ? queue : null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "Private" methods
|
* "Private" methods
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
__callImmediates() {
|
||||||
|
BridgeProfiling.profile('JSTimersExecution.callImmediates()');
|
||||||
|
guard(() => JSTimersExecution.callImmediates());
|
||||||
|
BridgeProfiling.profileEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
__flushedQueue() {
|
||||||
|
let queue = this._queue;
|
||||||
|
this._queue = [[],[],[]];
|
||||||
|
return queue[0].length ? queue : null;
|
||||||
|
}
|
||||||
__nativeCall(module, method, params, onFail, onSucc) {
|
__nativeCall(module, method, params, onFail, onSucc) {
|
||||||
if (onFail || onSucc) {
|
if (onFail || onSucc) {
|
||||||
// eventually delete old debug info
|
// eventually delete old debug info
|
||||||
|
|
Loading…
Reference in New Issue