【问题标题】:Why does CKEditor5 use a promise to initialize it?为什么CKEditor5使用promise来初始化它?
【发布时间】:2018-05-10 16:56:48
【问题描述】:

例子:

ClassicEditor
.create( document.querySelector( '#editor' ) )
.then( editor => {
    console.log( editor );
} )
.catch( error => {
    console.error( error );
} );

为什么编辑器创建需要异步?

【问题讨论】:

    标签: ckeditor ckeditor5


    【解决方案1】:

    编辑器初始化可以是异步的,因为某些编辑器功能或编辑器 UI 可能需要异步初始化。

    我在这里故意不具体。作为一个框架开发者,我不知道框架的用户想要实现什么样的功能。不过,我知道一些过去的例子:

    • 基于<iframe> 的编辑器(iframe 异步初始化),即在<iframe> 中编辑内容的编辑器,
    • 需要从服务器检索内容的实时协作功能。

    如果您正在实现一个需要延迟初始化的插件,那么您可以简单地从其init()afterInit() 方法返回一个promise:

    class MyPlugin extends Plugin {
        init() {
            return new Promise( resolve => {
                // Call resolve() once your plugin is ready:
                resolve();
            } );
        }
    }
    

    【讨论】:

    • 感谢您的解释!有道理
    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2019-07-10
    • 1970-01-01
    相关资源
    最近更新 更多