HTTP запросы
Создание HTTP запроса #
Параметры метода для выполнения HTTP запроса взяты из веб-браузера.
fetch()
function fetch(url: string, fetchOptions: FetchOptions = {}): Promise<Response>
Принимает параметры:
type FetchOptions = {
body?: any,
method?: string,
headers?: Record<string, string>
}
Возвращает объект Response:
type Response = {
status: number,
json<T = any>(): T,
text(): string,
dispose(): void
}
Объект Response представляет собой загруженные данные. Можно его декодировать в нужный формат, а можно использовать для создания UI-изображений, текстур, шейдеров и т.д.
Response.json()
Декодирует ответ как JSON и возвращает JS объект
Response.text()
Декодирует ответ как текст в кодировке utf-8 и возвращает JS строку.
Обратите внимание, что методы .json() и .text() являются синхронными и сразу возвращают результат, а не Promise, как в веб-браузере
Применение fetch #
Отображение информации по API
fetch("https://creator.jt3.ru/api").then((resp) => {
toast(resp.text())
})
Отображение предварительно загруженного изображения
import { UIImage, UIScreen } from 'ui'
fetch("https://creator.jt3.ru/docs-assets/favicon-D2spz8Iz.png").then((resp) => {
const image = UIImage(resp)
UIScreen([ image ]).open()
})
Создание шейдера
import { Material, Entity, Mesh } from 'ui'
import shaderSrc from './lit.mat'
fetch(shaderSrc).then((shaderResp) => {
const material = new Material(shaderResp)
const cube = new Entity(Mesh.createCube())
cube.material = material
})