I have this script, which in some cases may require user input. It works, but the script continues regardless of the result of the Sweet Alert input.
$('#cart').on('click', '.button', function() {
    var code = $(this).data('code')
    if ((code !== '') && (code !== null) && (code !== undefined)) {
        var repeated = 0
        var secondary = null
        if (code.startsWith('ABC')) {
            swalBs.fire({
                text: 'Enter secondary code',
                showCancelButton: true,
                cancelButtonText: 'Cancel',
                showConfirmButton: true,
                confirmButtonText: 'Confirm',
                reverseButtons: true,
                input: 'text',
                inputValidator: (value) => {
                    if (!value) {
                        return 'Code required'
                    }
                }
            })
            .then((result) => {
                console.log(result)
                secondary = result.value
            })
        }
        if (repeated < 1) {
            $.post(serviceUrl, {
                c : code,
                s : secondary
            }, function(response) {
                ...
            })
            .fail(function() {
                ...
            })
        } else {
            swalBs.fire('Error', 'Code already entered', 'error')
        }
    } else {
        swalBs.fire('Enter code', 'Field must not be blank.')
    }
})
How can I make this script wait for the Sweet Alert input while still allowing the $.post to happen when the if (code.startsWith('ABC')) condition is not met (and Sweet Alert is not needed)?
