我正在开发 Angular 9 应用程序,我们使用 Web Worker 进行更繁重的计算。整个应用程序都是用 Typescript 编写的,包括网络工作人员。不幸的是,我无法找出正确的方法来让 Angular 构建为 Web Worker 代码创建源映射,以便 Chrome 调试器可以逐行执行代码。
更好的解决方案是能够单步执行我的 Typescript 工作代码,就像我可以单步执行主线程的 Typescript 一样。然而,鉴于我根本没有能力调试 Typescript Worker,即使能够单步执行转译的 Javascript 也将是一个胜利。
这是我所看到的情况:
我的 Angular 项目中有一个editor.worker.ts描述 Web Worker 的文件。该工作人员在其他地方被实例化为:
const worker = new Worker('./editor.worker', { name: 'Editor', type: 'module' });
Run Code Online (Sandbox Code Playgroud)
构建应用程序并在 Chrome 中加载后,当我进入 devtools Sources选项卡并搜索 Worker 时,我发现了 2 个文件:
editor.worker.ts仅包含一行:
module.exports = __webpack_public_path__ + "Editor.worker.js"
Run Code Online (Sandbox Code Playgroud)
Editor.worker.js包含已转译的 Javascript。
当应用程序在 Chrome 中运行时,我可以在转译的 .js 文件中设置断点,调试器将在遇到代码行时暂停。但是,源中突出显示的行是 中的单行editor.worker.ts。当我浏览回 Editor.worker.js 源文件时,我的断点不再显示,并且调试器无法识别执行暂停的特定代码行,并且我无法单步执行代码。(按 F8 确实会继续执行,如预期的那样。)
看来我可能缺少工作人员的 …
我想每次通过PuTTY SSH到服务器时运行一些shell命令.我正在连接到由其他人管理的生产Web服务器,我不想在那里存储我自己的脚本.
我看到选项Connection> SSH> Remote Command,但如果我将初始化命令放在那里,在启动会话后,它会在命令执行后立即关闭.如何运行远程命令,然后保持会话打开,以便继续使用它?
我正在使用 Protractor 为 Angular2 应用程序编写行为测试,并且我对 async/await 语法很陌生。这个问题让我陷入了停滞。Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.有人可以解释为什么我在方法中遇到 Typescript 错误isLogoFooterPresent(),以及如何修复它吗?
我有以下简单的量角器规范,它尝试通过检查图像的宽度来验证图像是否显示。
以下是我的 e2e-spec.ts 文件的摘录:
import { LoginPage, Layout } from '../page_objects';
describe('Login page', () => {
it('Should have the logo in the footer', async () => {
await LoginPage.navigateTo();
await expect(Layout.isFooterLogoPresent).toBe(true);
})
});
Run Code Online (Sandbox Code Playgroud)
这是我的布局页面对象的一个片段,它可以看到相关徽标图像。await element(...).getAttribute(...)导致错误的链条行。
import { browser, element, by } from 'protractor/globals';
export class Layout {
static …Run Code Online (Sandbox Code Playgroud) typescript ×2
angular ×1
async-await ×1
protractor ×1
putty ×1
ssh ×1
web-worker ×1
webpack ×1