= Legacy Promise API removed from Keycloak JS adapter The legacy Promise API methods have been removed from the Keycloak JS adapter. This means that calling `.success()` and `.error()` on promises returned from the adapter is no longer possible. Instead standardized Promise methods such as https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then[`.then()`] and https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch[`.catch()`] should be used. *Before:* ```javascript const keycloak = new Keycloak(); keycloak.init() .success(function(authenticated) { alert(authenticated ? 'authenticated' : 'not authenticated'); }).error(function() { alert('failed to initialize'); }); ``` *After:* ```javascript const keycloak = new Keycloak(); keycloak.init() .then(function(authenticated) { alert(authenticated ? 'authenticated' : 'not authenticated'); }).catch(function() { alert('failed to initialize'); }); ``` Or alternatively, when using the https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await[`await`] keyword to unwrap these promises: ```javascript const keycloak = new Keycloak(); try { const authenticated = await keycloak.init(); alert(authenticated ? 'authenticated' : 'not authenticated'); } catch (error) { alert('failed to initialize'); } ``` = Keycloak JS adapter must be instanciated with the `new` operator Historically it has been possible to create an instance of the Keycloak JS adapter by calling the `Keycloak()` function directly: ```js const keycloak = Keycloak(); ``` To align this with modern conventions in the JavaScript world it has been possible to use the https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new[`new` operator] to create an instance instead: ```js const keycloak = new Keycloak(); ``` The function-style constructor has been deprecated for a while, but starting this version we will actively log a deprecation message when it used. This style of constructor will be removed in a future version so make sure to migrate your code to use the `new` operator.