1

我正在创建一个应用程序,我想从互联网下载数据。为了避免阻塞主线程,我创建了一个 WorkerScript 文件。这很好用,但我需要将某些部分(如授权、适当的标头等)抽象为通用功能。

不幸的是,我还没有找到将js文件导入作为工作线程的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
}
4

3 回答 3

3

请参阅Oleg提供的文档

工作脚本不能使用 .import 语法。

于 2014-01-07T13:23:12.017 回答
0

我猜你在 import 语句中错过了一个限定符。正确的语法是:

.import "filename.js" as Qualifier

请参阅Qt 文档以了解您的情况。

于 2014-01-06T22:59:07.370 回答
0

这更像是一个元答案,因为它也针对其他回答者。

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"

所以很明显它不起作用,但文档说明它确实 - 而且它没有......

于 2020-05-12T15:26:32.187 回答