Răsfoiți Sursa

Merge pull request #1383 from ckeditor/t/1382

Feature: `controller.DataController#init` now returns a resolved `Promise`. Closes #1382.
Piotrek Koszuliński 7 ani în urmă
părinte
comite
c9e6ea6c68

+ 3 - 0
packages/ckeditor5-engine/src/controller/datacontroller.js

@@ -184,6 +184,7 @@ export default class DataController {
 	 * @fires init
 	 * @param {String} data Input data.
 	 * @param {String} [rootName='main'] Root name.
+	 * @returns {Promise} Promise that is resolved after the data is set on the editor.
 	 */
 	init( data, rootName = 'main' ) {
 		if ( this.model.document.version ) {
@@ -202,6 +203,8 @@ export default class DataController {
 		this.model.enqueueChange( 'transparent', writer => {
 			writer.insert( this.parse( data, modelRoot ), modelRoot );
 		} );
+
+		return Promise.resolve();
 	}
 
 	/**

+ 8 - 0
packages/ckeditor5-engine/tests/controller/datacontroller.js

@@ -206,6 +206,14 @@ describe( 'DataController', () => {
 
 			expect( spy.calledOnce ).to.be.true;
 		} );
+
+		it( 'should return a resolved Promise', () => {
+			const promise = data.init( '<p>Foo</p>' );
+
+			expect( promise ).to.be.instanceof( Promise );
+
+			return promise;
+		} );
 	} );
 
 	describe( 'set()', () => {