update
This commit is contained in:
87
Admin/plugins/ckeditor/core/promise.js
Normal file
87
Admin/plugins/ckeditor/core/promise.js
Normal file
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
|
||||
/* global Promise, ES6Promise */
|
||||
|
||||
( function() {
|
||||
'use strict';
|
||||
|
||||
if ( window.Promise ) {
|
||||
CKEDITOR.tools.promise = Promise;
|
||||
} else {
|
||||
var polyfillURL = CKEDITOR.getUrl( 'vendor/promise.js' ),
|
||||
isAmdEnv = typeof window.define === 'function' && window.define.amd && typeof window.require === 'function';
|
||||
|
||||
if ( isAmdEnv ) {
|
||||
return window.require( [ polyfillURL ], function( Promise ) {
|
||||
CKEDITOR.tools.promise = Promise;
|
||||
} );
|
||||
}
|
||||
|
||||
CKEDITOR.scriptLoader.load( polyfillURL, function( success ) {
|
||||
if ( !success ) {
|
||||
return CKEDITOR.error( 'no-vendor-lib', {
|
||||
path: polyfillURL
|
||||
} );
|
||||
}
|
||||
|
||||
if ( typeof window.ES6Promise !== 'undefined' ) {
|
||||
return CKEDITOR.tools.promise = ES6Promise;
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* An alias for the [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)
|
||||
* object representing an asynchronous operation.
|
||||
*
|
||||
* It uses the native `Promise` browser implementation if it is available. For older browsers with lack of `Promise` support,
|
||||
* the [`ES6-Promise`](https://github.com/stefanpenner/es6-promise) polyfill is used.
|
||||
* See the [Promise Browser Compatibility table](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#Browser_compatibility)
|
||||
* to learn more.
|
||||
*
|
||||
* Refer to [MDN Using Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises) guide for
|
||||
* more details on how to work with promises.
|
||||
*
|
||||
* **NOTE:** `catch` and `finally` are reserved keywords in IE<9 browsers. Use bracket notation instead:
|
||||
*
|
||||
* ```js
|
||||
* promise[ 'catch' ]( function( err ) {
|
||||
* // ...
|
||||
* } );
|
||||
*
|
||||
* promise[ 'finally' ]( function() {
|
||||
* // ...
|
||||
* } );
|
||||
* ```
|
||||
*
|
||||
* @since 4.12.0
|
||||
* @class CKEDITOR.tools.promise
|
||||
*/
|
||||
|
||||
/**
|
||||
* Creates a new `Promise` instance.
|
||||
*
|
||||
* ```js
|
||||
* new CKEDITOR.tools.promise( function( resolve, reject ) {
|
||||
* setTimeout( function() {
|
||||
* var timestamp;
|
||||
* try {
|
||||
* timestamp = ( new Date() ).getTime();
|
||||
* } catch ( e ) {
|
||||
* reject( e );
|
||||
* }
|
||||
* resolve( timestamp );
|
||||
* }, 5000 );
|
||||
* } );
|
||||
* ```
|
||||
*
|
||||
* @param {Function} resolver
|
||||
* @param {Function} resolver.resolve
|
||||
* @param {Function} resolver.reject
|
||||
* @constructor
|
||||
*/
|
||||
|
||||
} )();
|
||||
Reference in New Issue
Block a user