我正在尝试使用React创建一个Electron应用程序,该应用程序将能够从本地sqlite3数据库插入和提取数据。我试图设置一个Web Worker来处理数据库交互,但是每当我创建一个新的数据库连接时,开发人员工具窗口都将断开,并且应用程序内没有任何反应。我认为在我看不见或无法捕捉到的地方一定发生了一些错误。
我是否必须使用Web Worker或类似的线程/处理工具?如果我需要使用Web Worker,什么会导致此问题?
我试图在我的一个React组件(没有Web Worker)中包括sqlite3包,但这会引发各种错误。
答案 0 :(得分:0)
由于显然他们根本无法工作,最终报废了网络工作者。切换到在主过程中进行插入和查询,然后使用Electron的内置IPC将结果发送回渲染过程。
答案 1 :(得分:0)
完全可以从渲染器进程访问/使用sqlite。
我们有一个庞大的复杂应用程序,可以通过本机驱动程序与数十个USB硬件设备进行通信,并且所有内容都在单个渲染器进程中运行。为此,我们仅确保没有代码进行同步调用。
我自己没有使用sqlite,但是node-sqlite3
说它是完全异步的,因此您可以在Electron渲染器中使用它而不会阻塞UI。