Aura

Call Apex Method using Promise

promiseAction: function (cmp, methodName, params) {
        var self = this;
        return new Promise(function (resolve, reject) {
            var action = cmp.get(methodName);
            action.setParams(params);
            action.setCallback(this, function (response) {
                var state = response.getState();
                if (cmp.isValid() && state === 'SUCCESS') {
                    var result = JSON.parse(response.getReturnValue());
                    resolve(result);
                } else if (state === 'ERROR') {
                    var errors = response.getError();
                    self.handleErrors(errors);
                    reject(errors);
                }
            });
            $A.getCallback(function () {
                $A.enqueueAction(action);
            })();
        });
    },

Call Apex Method using Callback

    callAction: function (cmp, methodName, params, callback) {
        var action = cmp.get(methodName);
        action.setParams(params);
        action.setCallback(this, function (response) {
            var state = response.getState();
            if (cmp.isValid() && state === 'SUCCESS') {
                var result = response.getReturnValue();
                if (callback) callback(result);
            } else if (state === 'ERROR') {
                this.handleErrors(cmp, response.getError());
            }
        });
        $A.getCallback(function () {
            $A.enqueueAction(action);
        })();
    },

Show Toast

    showToast: function (title, message, type) {
        var toastEvent = $A.get("e.force:showToast");
        toastEvent.setParams({
            title: title,
            message: message,
            type: type,
        });
        toastEvent.fire();
    },

Handle Errors

    handleErrors: function (cmp, errors) {
        let toastParams = {
            title: 'Error',
            message: 'Unknown error',
            type: 'error'
        };
        if (errors) {
            if (errors[0] && errors[0].message) {
                console.log(errors[0].message);
                toastParams.message = errors[0].message;
            }
        }
        let toastEvent = $A.get('e.force:showToast');
        toastEvent.setParams(toastParams);
        toastEvent.fire();
    },
})

Last updated