【发布时间】:2019-09-28 13:55:35
【问题描述】:
我在 Electron 上打印多个 PDF 时遇到了一些问题。
这就是在我的 JS 中发生的情况:通过单击按钮触发的功能隐藏了用户在应用程序启动时看到的内容并显示了一些其他内容,然后将此内容打印到特定位置。完成此操作后,我的 js 会隐藏当前内容并显示其他内容,然后调用再次保存 pdf 并将该 pdf 保存到另一个位置的函数。
第一个文件已保存,一切顺利,但是当我再次调用打印 pdf 的函数时,它会向我抛出一个错误,甚至没有被回调函数捕获的错误...(见图)
我尝试切换两个 PDF 创建,它始终是第一个有效的,无论显示哪个内容。 我尝试使用 Async 和 Sync 函数来编写 pdf 文件(fs.writeFile 和 fs.writeFileSync) 我已经控制台。我将传递给函数的所有数据一一记录下来,它们都是正确的。
在这里你可以看到:
我在控制台中遇到错误:
npm 错误!代码 ELIFECYCLE npm 错误!错误号 3221225477 npm 错误! (我的 项目名称)@1.0.0 开始:
electron .npm 错误!退出状态 3221225477 npm 错误! npm 错误!在 (MY PROJECT NAME)@1.0.0 失败 启动脚本。 npm 错误!这可能不是 npm 的问题。那里 可能是上面的额外日志输出。npm 错误!可以在以下位置找到此运行的完整日志:npm ERR!
C:\Users\MY_NAME\AppData\Roaming\npm-cache_logs\2019-09-28T13_37_12_330Z-debug.log
这是调试日志:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'start' ]
2 info using npm@6.9.0
3 info using node@v10.16.3
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle (MY PROJECT NAME)@1.0.0~prestart: (MY PROJECT NAME)@1.0.0
6 info lifecycle (MY PROJECT NAME)@1.0.0~start: (MY PROJECT NAME)@1.0.0
7 verbose lifecycle (MY PROJECT NAME)@1.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle (MY PROJECT NAME)@1.0.0~start: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\(MY PROJECT NAME)\node_modules\.bin;C:\Program Files\AdoptOpenJDK\jdk-11.0.4.11-hotspot\bin;C:\Program Files\AdoptOpenJDK\jre-11.0.4.11-hotspot\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\nodejs\;C:\Users\MY_NAME\AppData\Local\Microsoft\WindowsApps;C:\Users\liux_\AppData\Roaming\npm;C:\Users\MY_NAME\AppData\Local\atom\bin
9 verbose lifecycle (MY PROJECT NAME)@1.0.0~start: CWD: C:\(MY PROJECT NAME)
10 silly lifecycle (MY PROJECT NAME)@1.0.0~start: Args: [ '/d /s /c', 'electron .' ]
11 silly lifecycle (MY PROJECT NAME)@1.0.0~start: Returned: code: 3221225477 signal: null
12 info lifecycle (MY PROJECT NAME)@1.0.0~start: Failed to exec start script
13 verbose stack Error: (MY PROJECT NAME)@1.0.0 start: `electron .`
13 verbose stack Exit status 3221225477
13 verbose stack at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16)
13 verbose stack at EventEmitter.emit (events.js:198:13)
13 verbose stack at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:198:13)
13 verbose stack at maybeClose (internal/child_process.js:982:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
14 verbose pkgid (MY PROJECT NAME)@1.0.0
15 verbose cwd C:\(MY PROJECT NAME)
16 verbose Windows_NT 10.0.18362
17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
18 verbose node v10.16.3
19 verbose npm v6.9.0
20 error code ELIFECYCLE
21 error errno 3221225477
22 error (MY PROJECT NAME)@1.0.0 start: `electron .`
22 error Exit status 3221225477
23 error Failed at the (MY PROJECT NAME)@1.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 3221225477, true ]
【问题讨论】:
-
我发现使用睡眠功能延迟执行下一个打印功能可以解决问题。但是这不正常,我使用的每个功能都是 SYNC 并且在完成之前不应该执行任何其他操作......有人可以解释一下吗?
标签: javascript pdf printing electron