make callback only on demand
fall to setTimeout in nextTick in old Operas