我正在查看Polymers observe-js的代码,我不太明白它是如何工作的。我不是在谈论脏检查,而是在谈论它的调用 - 何时执行检查?
看起来魔法就在这里:
var runEOM = hasObserve ? (function(){
return function(fn) {
return Promise.resolve().then(fn);
}
})() :
(function() {
return function(fn) {
eomTasks.push(fn);
};
})();
由于 Promise.resolve().then(fn) 在回调堆栈末尾调用 fn,因此该行推迟了 fs,类似于 setTimeout(0, fn) 或 process.nextTick(fn)
但是 runEOM 从未在文件中使用!
有人能解释一下吗?
最佳答案
脏检查似乎是通过调用global.Platform.performMicrotaskCheckpoint
接口(interface)方法从外部手动执行的:行792
我认为这个概念是在完成某些初始工作或该线索中的某些内容后手动通知观察者。
关于javascript - 聚合物observe-js如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31235273/