Wie zu verwenden verspricht, oder eine ajax-Anfrage, bevor die Funktion beendet wird?

Habe ich die folgende Funktion zu überprüfen, eine Benutzer-session, um zu sehen, ob Sie Mitarbeiter oder nicht. Nun, ich weiß, es gibt bessere Möglichkeiten, dies zu tun, aber ich bin versucht zu machen, eine einfache Anwendung, die gebunden ist mit einer forum-software.

function isStaff(callback) {
    $.ajax({
        url: url
    }).done(function(data) {
        var session = $.parseJSON(data);
        if (session.is_staff === 1) {
            callback(true);
        } else {
            callback(false);
        }

    });
}

Sagen wir, ich bin mit dieser Funktion in etwa so aus, beim kompilieren ein "post" (LENKER).

function compilePost(post) {
    var source = $('#feed-item-template').html();
    var template = Handlebars.compile(source);
    var context = {
        id: post.id,
        content: post.text,
        author: post.author,
        date: $.timeago(post.date),
        staff: function() {
            isStaff(function(response) {
                return response;
            });
        }
    }
    var html= template(context);
    return html;
}

Problem hier ist, dass die Anforderung zu überprüfen, wenn ein Benutzer einen Personal nicht vollständige Antrag bis nach der Funktion ran.

Ich weiß, mit Versprechen ist eine alternative zu async: false, wo der Antrag gestellt wird und die Antwort kommt zurück, bevor die Funktion beendet.

Aber ich habe keine Ahnung wie ich die konvertieren kann dieses in ein Versprechen. Ich habe versucht, es zu lernen, aber ich bin stecken im Konzept. Kann mir das jemand erklären? Danke.

InformationsquelleAutor Jess | 2016-06-10
Schreibe einen Kommentar