Many of my friends, who are using deeply some deferred/promises objects in their libraries, are often telling me, that to use timers in own implementation of it is an evil.

That it doesn't correspond to A+: <https://github.com/promises-aplus/promises-spec>

And that many libraries as jQuery and others don't use timers. So I've tried to find any timers in jQuery sources, which may relate to promises implementation, but no success:

<https://github.com/jquery/jquery/blob/master/src/deferred.js>

All, right, but I've found some notes in A+ description, which have confused me about using timers in it:

At `Notes` article:

> 
> Here "platform code" means engine, environment, and promise
>  implementation code. In practice, this requirement ensures that
>  onFulfilled and onRejected execute asynchronously, after the event
>  loop turn in which then is called, and with a fresh stack. This can be
>  implemented with either a "macro-task" mechanism such as **setTimeout or
>  setImmediate**, or with a "micro-task" mechanism such as
>  MutationObserver or process.nextTick. Since the promise implementation
>  is considered platform code, it may itself contain a task-scheduling
>  queue or "trampoline" in which the handlers are called.
> 
> 
> 

So, I understood A+ didn't have strict rules about timer using or did it?

Help me, I'm rather confused.