Как импортировать файл JavaScript в рабочий скрипт qml
Я создаю приложение в qml, где я хочу скачать данные из Интернета. Чтобы избежать блокировки основного потока, я создал файл 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
}
2 ответа
Смотрите документацию, предоставленную Олегом:
Рабочий скрипт не может использовать синтаксис.import.
Я полагаю, вы пропустили квалификатор в операторе импорта. Правильный синтаксис:
.import "filename.js" as Qualifier
Смотрите документацию Qt для вашего случая.
Это скорее мета-ответ, так как он также адресован другим респондентам.
Документация 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"
Итак, очевидно, что это не работает, но в документации указано, что это работает - и что это не...