https://github.com/angular/angular/pull/5932 (merged 5 days ago)
The changelog does mention it, therefore it is probably not yet included in beta.2 On Sunday, January 31, 2016 at 11:12:44 PM UTC+1, [email protected] wrote: > > Hi Jason, attempting to port my angular 2 app over to using web workers, > but I am running into a similar exception: > > "Error during instantiation of PlatformLocation! (AppComponent -> > RouterService -> Router -> Location -> LocationStrategy -> > PlatformLocation)" > > Is the Router not supported in web workers yet? > > Thanks > > On Tuesday, October 27, 2015 at 9:42:55 AM UTC-5, Dennis Smolek wrote: >> >> Jason, >> >> I'm just now starting to look into doing work with the web workers and >> although the router doesnt work with components would it be possible to put >> my services into a worker? >> >> On Monday, August 17, 2015 at 12:48:19 PM UTC-5, Jason Teplitz wrote: >>> >>> Hey Roland, >>> >>> Just wanted to give you an update on this. I talked to the router folks >>> and getting the router to run in a WebWorker requires a bit more work than >>> I initially anticipated. We've got the design sketched out though and >>> should be able to implement it this week. >>> >>> On Monday, August 10, 2015 at 10:50:07 AM UTC-7, Jason Teplitz wrote: >>>> >>>> Unfortunately, it is necessary to do that right now because some of our >>>> dependencies assume that those things are set on the window object. The >>>> long term plan is to move that into the framework ( >>>> https://github.com/angular/angular/issues/3207), but at the moment we >>>> need to overwrite that object before loading any dependencies. >>>> >>>> On Monday, August 10, 2015 at 10:39:42 AM UTC-7, Roland Groza wrote: >>>>> >>>>> I figured that there was no support for Router yet, perhaps is because >>>>> the location object is available in web workers. Anyway, I'll try to >>>>> remove >>>>> the routing and see how that works out as for now I only have one route >>>>> anyway. >>>>> >>>>> But I am a bit puzzled why is the window object overwritten: >>>>> >>>>> window = { >>>>> setTimeout: setTimeout, >>>>> Map: Map, >>>>> Set: Set, >>>>> Array: Array, >>>>> Reflect: Reflect, >>>>> RegExp: RegExp, >>>>> Promise: Promise, >>>>> Date: Date, >>>>> zone: zone >>>>> }; >>>>> assert = function() {}; >>>>> >>>>> According to MDN, a few of those object are actually exposed to a web >>>>> worker: >>>>> https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers >>>>> >>>>> (right at the bottom of the page). Is it really necessary to do the above? >>>>> >>>>> >>>>> On Monday, August 10, 2015 at 7:25:52 PM UTC+2, Jason Teplitz wrote: >>>>>> >>>>>> Hey Roland, >>>>>> >>>>>> Glad to hear you're working on a WebWorker app! Just so you know, >>>>>> WebWorker support in angular is currently under heavy development and >>>>>> definitely not ready for prime time, but you're more than welcome to >>>>>> play >>>>>> around with it. I'd recommend using angular directly from source (npm >>>>>> install from our github repo: github.com/angular/angular) since we >>>>>> haven't got all the WebWorkers files bundled up properly for npm yet as >>>>>> you >>>>>> discovered with the zone-microtask file. >>>>>> >>>>>> Unfortunately, right now it looks like the Router isn't compatible >>>>>> with a WebWorker app. I've made an issue for this ( >>>>>> https://github.com/angular/angular/issues/3563), and am going to try >>>>>> to look into it today. For now though, if you'd like to run your app in >>>>>> a >>>>>> WebWorker it looks like you can't use the router. I'll update this post >>>>>> if >>>>>> I discover any other workaround. >>>>>> >>>>>> Let me know if you have any more WebWorker questions! >>>>>> >>>>>> On Saturday, August 8, 2015 at 12:50:49 AM UTC-7, Roland Groza wrote: >>>>>>> >>>>>>> I've just tried to have this >>>>>>> <https://github.com/rolandjitsu/ng2-play> app running in a web >>>>>>> worker by following the example >>>>>>> <https://github.com/angular/angular/tree/master/modules/examples/src/web_workers/kitchen_sink> >>>>>>> >>>>>>> on the angular repo, but I am not sure if I use the npm >>>>>>> distribution and I set up an app as the example, do I need the >>>>>>> zone-microtask-web-workers.js >>>>>>> <https://github.com/angular/angular/blob/master/modules/examples/src/assets/zone-microtask-web-workers.js> >>>>>>> that is used in the examples folder? >>>>>>> >>>>>>> >>>>>>> Because I am a bit confused about SCRIPTS.js >>>>>>> <https://github.com/angular/angular/blob/master/tools/broccoli/js-replace/SCRIPTS.js> >>>>>>> 's importScripts which does import the script I mentioned above and >>>>>>> I cannot seem to find it within the npm distribution. >>>>>>> >>>>>>> >>>>>>> After I manage to set it up though using the >>>>>>> zone-microtask-web-workers.js from the main repo, I did get an >>>>>>> exception >>>>>>> from the Router: >>>>>>> >>>>>>> >>>>>>> EXCEPTION: Error during instantiation of LocationStrategy! (App -> >>>>>>> Router -> Location -> LocationStrategy). >>>>>>> ORIGINAL EXCEPTION: TypeError: Cannot read property 'getLocation' >>>>>>> of undefined >>>>>>> ORIGINAL STACKTRACE: >>>>>>> TypeError: Cannot read property 'getLocation' of undefined >>>>>>> at new HashLocationStrategy >>>>>>> (:8000/lib/angular2/src/router/hash_location_strategy.js:26) >>>>>>> at eval (reflection_capabilities.js:12) >>>>>>> at Injector._new (injector.js:555) >>>>>>> at InjectorDynamicStrategy.getObjByKeyId (injector.js:301) >>>>>>> at Injector._getByKeyDefault (injector.js:695) >>>>>>> at Injector._getByKey (injector.js:646) >>>>>>> at Injector._getByDependency (injector.js:632) >>>>>>> at Injector._new (injector.js:524) >>>>>>> at InjectorDynamicStrategy.getObjByKeyId (injector.js:301) >>>>>>> at Injector._getByKeyDefault (injector.js:695) >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
