Я использую Object.observe() на узле v0.11.13.
Похоже, что время вызова обратного вызова наблюдения невозможно предсказать. это баг или фича?
Взгляните на этот код:
function observe(obj,name){
Object.observe(obj, function(o){
console.log(name,o);
});
return obj;
}
var boo = observe({foo:1},'a');
var doo = observe({foo:1},'b');
doo.foo=2;
boo.foo=2;
Вывод выглядит так:
a [ { type: 'update', object: { foo: 2 }, name: 'foo', oldValue: 1 } ]
b [ { type: 'update', object: { foo: 2 }, name: 'foo', oldValue: 1 } ]
Я ожидал обратного порядка. Интересно, связано ли это со спецификацией или узлом реализации этой функции.