Ich bin neu in Javascript und JQuery aufgerufen. Nach meinem Verständnis werden .then() und .done() als Ergebnis von resolve() für das zurückgestellte Objekt ausgelöst. Aber in meinem Code, obwohl resolve() wird nicht aufgerufen, .then() und .done() gefeuertPromises und Deferred: .done() und .then() genannt, obwohl .resolve() für das verzögerte Objekt
<head>
<meta charset="UTF-8">
<title>Testing Promises</title>
</head>
<body>
<button type="button" onclick="test()"> Click Me</button>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
function test() {
var promise = $.when(another);
promise.done(function() {
console.log("another() done");
});
promise.done(function() {
console.log("another() done 2");
});
promise.done(function() {
console.log("another() done 3");
});
promise.fail(function (error) {
console.log("Failed with error = ", error);
});
promise.then(function() {
console.log("In then():");
});
console.log("test() done");
}
function another() {
var def = $.Deferred();
console.log("In another()");
return def.promise();
}
</script>
</body>
</html>