2017-05-03 7 views
0

verspricht Ich habe meine createUserData() Funktion:.then() ist keine geworfene Funktion bei der Rückkehr jQuery

createUserData(user) { 
    const dfd = new $.Deferred(); 
    $.ajax({ 
     url: './awesome/user', 
     type: 'POST', 
     dataType: 'json', 
     data: user, 
    }) 
    .then((response) => { 
     dfd.resolve(response); 
    }) 
    .fail((xhr) => { 
     // do stuff with errors 
     dfd.reject(errorMsg); 
    }); 

    return dfd.promise; 
} 

Und ich möchte in der Lage sein, es überhaupt, wo zu nennen ...

createUserData(user).then((response) => { 
    // do more stuff with that response 
    // fire off other functions 
    // But I can't get here... 
}); 

Ich bekomme createUserData(...).then() is not a function. Benutze ich Versprechen falsch? Ich verstehe nicht, ich gebe das Versprechen in meiner Funktion zurück. Was mache ich falsch?

+1

'return dfd.promise() sein' – epascarello

Antwort

1

Sie müssen das Versprechen Methode aufzurufen:

return dfd.promise(); 
0

könnten Sie direkt zurückgeben, die $ Schnipsel und verketten, dass die .done mit() und .fail().

Btw in Ihrem Code sollte die Frage

return dfd.promise();