Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   tinymce 6 - как подгружать сторонние классы в кастомном плагине? (https://javascript.ru/forum/events/83992-tinymce-6-kak-podgruzhat-storonnie-klassy-v-kastomnom-plagine.html)

Volonter 09.05.2022 10:30

tinymce 6 - как подгружать сторонние классы в кастомном плагине?
 
Всем привет, пишу свой плагинчик под tinymce6, не могу разобраться как подгружать скрипты. Официальная дока говорит что так
// plugins/myplugin/plugin.min.js
tinymce.PluginManager.add('myplugin', function(editor, url) {
    'use strict';
   // начинаем загрузку скриптов 
   let scriptLoader = new tinymce.dom.ScriptLoader();
   scriptLoader.add(url + '/lib/Class.js');
   scriptLoader.loadQueue().then(() => {
      const class = new Class();
      // в консоли получаем объект класса, загрузчик работает
      console.log(class)
   })
   // ниже все функции плагина
  // здесь мне надо как то работать с загруженным классом, типа вот так
  let textFromclass = class.getText()
  // но так как загрузчик возвращает промис, это не работает
})

Подскажите решение, пожалуйста)) второй день и гуглю, и доку скурил уже всю, не хочет никак работать. Я понимаю, что промис, что асинхронность, что нужно коллбэк скорее всего какой то... но вот дальше вывода в консоль у меня дело не идет))

Rise 09.05.2022 13:23

Volonter,
Так прямо после вывода в консоль и пиши.

Volonter 09.05.2022 13:27

Цитата:

Сообщение от Rise (Сообщение 545213)
Volonter,
Так прямо после вывода в консоль и пиши.

если бы было так просто)) вне конструкции .then(() => {}) это не работает
если ранее объявит переменную class, а в then попытаться занести то что получили, то думаю мы получим объект promis туда, а это не то

Rise 09.05.2022 13:34

Цитата:

Сообщение от Volonter
вне конструкции

Так пиши внутри конструкции.

Volonter 09.05.2022 13:39

Цитата:

Сообщение от Rise (Сообщение 545218)
Так пиши внутри конструкции.

весь код, всего плагина, вообще внутри? Ну, наверное можно конечно, но насколько это правильно?

Rise 09.05.2022 13:50

Volonter,
Да какая разница.

Volonter 09.05.2022 13:54

Цитата:

Сообщение от Rise (Сообщение 545225)
Volonter,
Да какая разница.

сложно сказать, я вашим советам доверяю на 100%, но может есть вариант как то записывать в переменные? чтобы class= new Class работал вне then() это я уже чисто для себя просто хочу понять

Rise 09.05.2022 14:02

Volonter,
tinymce.PluginManager.add('myplugin', async function(editor, url) {
    // ...
    await scriptLoader.loadQueue();
    const class = new Class();
    // ...
});

Volonter 09.05.2022 14:49

Цитата:

Сообщение от Rise (Сообщение 545232)
Volonter,
tinymce.PluginManager.add('myplugin', async function(editor, url) {
    // ...
    await scriptLoader.loadQueue();
    const class = new Class();
    // ...
});

Супер! Огромное спасибо!


Часовой пояс GMT +3, время: 18:07.