- From: <bugzilla@jessica.w3.org>
- Date: Mon, 05 Dec 2011 10:17:41 +0000
- To: public-html-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=15007
Simon Pieters <simonp@opera.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |WORKSFORME
--- Comment #16 from Simon Pieters <simonp@opera.com> 2011-12-05 10:17:40 UTC ---
(In reply to comment #14)
> However, I notice you can use MessageChannel for this purpose, without any of
> these problems.
>
> var queueTask = function(task)
> {
> var mc = new MessageChannel();
> mc.port1.onmessage = task;
> mc.port2.postMessage(null);
> }
>
> queueTask(function() { console.log("test"); });
Nice find! Improved version with support for passing arguments and correct
'this':
var queueTask = function(task)
{
var mc = new MessageChannel();
var args = [].slice.call(arguments, 1);
mc.port1.onmessage = function(){ task.apply(task, args); };
mc.port2.postMessage(null);
}
queueTask(function(arg) { console.log(arg, this) }, "test");
Not as convenient as having it natively, but certainly works for me.
--
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Monday, 5 December 2011 10:34:38 UTC