ctx.requireAsync()
Memuat UMD/AMD atau script yang di-mount ke global secara async berdasarkan URL, juga dapat memuat CSS. Cocok untuk skenario RunJS yang perlu menggunakan library UMD/AMD seperti ECharts, Chart.js, FullCalendar (versi UMD), plugin jQuery; meneruskan alamat .css akan memuat dan menyuntikkan style. Jika library juga menyediakan versi ESM, lebih utamakan menggunakan ctx.importAsync().
Skenario Penggunaan
Semua skenario di RunJS yang perlu memuat UMD/AMD/global script atau CSS sesuai kebutuhan, seperti JSBlock, JSField, JSItem, JSColumn, event flow, JSAction, dll. Penggunaan khas: chart ECharts, Chart.js, FullCalendar (UMD), dayjs (UMD), plugin jQuery, dll.
Definisi Tipe
Parameter
Return Value
- Objek library setelah loading (nilai modul pertama dari callback UMD/AMD). Banyak library UMD akan ter-mount ke
window(sepertiwindow.echarts), return value mungkinundefined, saat penggunaan sebenarnya akses variabel global sesuai dokumentasi library. - Saat meneruskan
.cssmengembalikan hasilloadCSS.
Penjelasan Format URL
- Path singkat: seperti
echarts@5/dist/echarts.min.js, pada ESM CDN default (esm.sh) akan requesthttps://esm.sh/echarts@5/dist/echarts.min.js?raw,?rawdigunakan untuk mendapatkan file UMD asli, bukan wrapper ESM. - URL lengkap: dapat langsung menulis alamat CDN sembarang, seperti
https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js. - CSS: meneruskan URL yang berakhiran
.cssakan memuat dan menyuntikkan ke halaman.
Perbedaan dengan ctx.importAsync()
- ctx.requireAsync(): memuat script UMD/AMD/global, cocok untuk plugin ECharts, Chart.js, FullCalendar (UMD), jQuery, dll.; library setelah loading sering ter-mount ke
window, return value mungkin objek library atauundefined. - ctx.importAsync(): memuat modul ESM, mengembalikan namespace modul. Jika library juga menyediakan ESM, lebih utamakan
ctx.importAsync()untuk mendapatkan semantik modul yang lebih baik dan Tree-shaking.
Contoh
Penggunaan Dasar
Chart ECharts
Bar Chart Chart.js
dayjs (UMD)
Hal yang Perlu Diperhatikan
- Bentuk return value: cara ekspor library UMD beragam, return value mungkin objek library atau
undefined; jikaundefined, dapat diakses dariwindowsesuai dokumentasi library. - Bergantung pada jaringan: perlu mengakses CDN, environment intranet dapat mengarahkan ke layanan mandiri melalui ESM_CDN_BASE_URL.
- Pemilihan dengan importAsync: saat library menyediakan ESM dan UMD bersamaan, lebih utamakan
ctx.importAsync().
Terkait
- ctx.importAsync() - Memuat modul ESM, cocok untuk Vue, dayjs (ESM), dll.
- ctx.render() - Merender chart, dll. ke container
- ctx.libs - Bawaan React, antd, dayjs, dll., tidak perlu loading async

