npm-packages/eslint-plugin-meteor/docs/rules/no-zero-timeout.md
Meteor.setTimeout can be used to defer the execution of a function, but Meteor has a built-in method for deferring called Meteor.defer. It is better to use the dedicated method instead of relying on a side-effect of Meteor.setTimeout.
Using Meteor.defer is preferred, because it uses native setImmediate or postMessage methods in case they are available. Otherwise it can will fall back to setTimeout.
It's recommended to avoid setTimeout because it adds a delay of at least 2ms in Chrome, 10ms in other browsers [source].
This rule aims to encourage the use of Meteor.defer by removing all occurrences of Meteor.setTimeout with a delay of 0.
The following patterns are considered warnings:
Meteor.setTimeout(function () {}, 0)
Meteor.setTimeout(function () {})
Meteor["setTimeout"](function () {}, 0)
Meteor.setTimeout(foo, 0)
Meteor.setTimeout(foo)
Meteor["setTimeout"](foo, 0)
The following patterns are not warnings:
Meteor.defer(function () {}, 0)
Meteor.setTimeout(function () {}, 100)
Meteor.defer(foo, 0)
Meteor.setTimeout(foo, 100)