我正在用qml创建应用程序,我想从互联网上下载数据。为了避免主线程的阻塞,我创建了WorkerScript文件,这很好用,但我需要将某些部分(如授权、适当的头等)抽象为通用函数。这很好用,但我需要将某些部分(如授权、适当的头等)抽象为通用函数。
不幸的是,我还没有找到一种方法来导入js文件到作为worker线程的js文件中。".import "会导致语法错误。
如何才能实现呢?
谢谢大家了。
编辑:
这是qml文件中的相关部分。
Page {
WorkerScript {
id: myWorker
source: Qt.resolvedUrl("loadDetails.js")
onMessage: {}
}
}
这是loadDetails. js:
.import "jsonrpc.js" as Jrpc
WorkerScript.onMessage = function(message) {
// This is where I want to call functions from included file
}
这更像是一个元答案,因为这也是对其他答主的回答。
Qt文档有时会有歧义。在 WorkerScript文档 它规定。
普通JavaScript源的工作脚本不能使用.import语法。作为ECMAScript模块的脚本可以自由使用导入和导出语句。
但事实似乎并非如此。我尝试了各种不同的 进口:
// example.mjs
.import "test.mjs" as Test
.import * as Test from "test.mjs";
import "test.mjs" as Test
import * as Test from "test.mjs";
import { test } from "test.mjs"
所以很明显,它不工作,但文件上说它工作,而且它不... ...