我尝试了一些打开文件的不同npm包,但我遇到了同样的问题。
https://www.npmjs.com/package/opn
https://www.npmjs.com/package/open
问题:我无法一次在硬盘上打开多个html文件。但是当我试图打开其中一个时它工作正常。是什么导致了这个问题?
这不起作用(网页无法在我的浏览器中打开):
var fs = require('fs');
var opn = require('opn');
fs.writeFile('open.html', 'hello');
fs.writeFile('open1.html', 'hello1');
fs.writeFile('open2.html', 'hello2');
fs.writeFile('open3.html', 'hello3');
fs.writeFile('open4.html', 'hello4');
fs.writeFile('open5.html', 'hello5');
console.log('files created');
opn('open.html');
opn('open1.html');
opn('open2.html');
opn('open3.html');
opn('open4.html');
opn('open5.html');
但是WORKS下方的代码(我的浏览器中的一个网页打开正常):
var fs = require('fs');
var opn = require('opn');
fs.writeFile('open.html', 'hello');
console.log('file created');
opn('open.html');
答案 0 :(得分:1)
如果您发现副作用,可以使用fs.writeFileSync
代替fs.writeFile
:https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options
fs.writeFile
是异步的,会立即返回(即使文件尚未创建)。如果要等待操作完成,可以将其与回调一起使用。
fs.writeFileSync
阻塞主线程,直到写入文件,然后才返回。如果您不想过多地更改代码,可以使用它。