繁体   English   中英

使用ES5的Angular2 Web工作者

[英]Angular2 web workers with ES5

我已经走过了使用Angular2但编写ES5代码的道路,这意味着我找到的示例和指南通常必须从与TypeScript相关的答案中翻译出来。

有人可以帮助我使用ES5版本:

引导应用程序。 在TypeScript中,我看到它完成为:

import {WORKER_APP_PLATFORM, WORKER_APP_APPLICATION} from "angular2/platform/worker_app";
import {platform} from "angular2/core";
platform([WORKER_APP_PLATFORM]).application([WORKER_APP_APPLICATION]).bootstrap(myApp)

访问web_workers组件:

import {Component} from 'angular2/web_worker/worker';
@Component({ ... ])

我假设后者将通过调用来实现

ng.web_worker.worker.Component({ ... })

但似乎并非如此:ng.web_worker未定义。

问题可能是我似乎无法正确包含web_worker / ui.js。 当我包含它而不是bundle / angular2-all.umd.js时,我只收到有关require undefined的错误消息。 当我在我的项目中明确包含RequireJS时,我得到了许多其他错误。

任何帮助将不胜感激!

我可以问一下,你为什么要用ES5做这件事? 如果您不喜欢Typescript,可以轻松使用SystemJS和ES6。 打字稿与ES6几乎完全相同。

如果您仍想使用ES5,则需要将导入更改为require调用:

var WORKER_APP_PLATFORM = require("angular2/platform/worker_app").WORKER_APP_PLATFORM;
var WORKER_APP_APPLICATION = require("angular2/platform/worker_app").WORKER_APP_APPLICATION;
var platform = require("angular2/core").platform;
platform([WORKER_APP_PLATFORM]).application([WORKER_APP_APPLICATION]).bootstrap(myApp)

另一个例子:

var Component = require('angular2/web_worker/worker').Component;

你明白了。 您也不需要RequireJS ...您可以使用SystemJS。 您应该像这样导入主文件:

System.import("main")

SystemJS将解析所有需要的调用异步,但在代码中,require调用看起来是同步的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM