我正在查看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!
有人能透露这个吗?
答案 0 :(得分:0)
似乎通过调用global.Platform.performMicrotaskCheckpoint
接口方法从外部手动执行脏检查:行792
我认为这个概念是在完成一些初始工作或者线索之后手动通知观察者。