首页 文章

为什么CKEditor5使用承诺来初始化它?

提问于
浏览
1

例:

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

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

1 回答

  • 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();
            } );
        }
    }
    

相关问题