JavaScript/Notes/Promises: Difference between revisions
Jump to navigation
Jump to search
m (Reverted edits by Javascript (talk) to last revision by 208.70.28.214) |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
var img = new Image(); | var img = new Image(); | ||
var rejectTimer = setTimeout( function() { | var rejectTimer = setTimeout( function() { | ||
Line 18: | Line 16: | ||
}; | }; | ||
img.src = "https://www.google.com/images/srpr/logo11w.png?res"; | |||
function resolve(msg) { | function resolve(msg) { | ||
Line 25: | Line 24: | ||
console.error(err); | console.error(err); | ||
}; | }; | ||
</source> | </source> | ||
Line 32: | Line 32: | ||
var img = new Image(); | var img = new Image(); | ||
var rejectTimer = setTimeout( function() { | var rejectTimer = setTimeout( function() { | ||
Line 42: | Line 41: | ||
resolve("Stuff worked!"); | resolve("Stuff worked!"); | ||
} | } | ||
img.src = "https://www.google.com/images/srpr/logo11w.png?sss"; | |||
}); | }); | ||
Latest revision as of 23:51, 10 March 2014
Promises are a new addition to ECMAScript. See: http://www.html5rocks.com/en/tutorials/es6/promises/ https://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-objects
Example with no Promise[edit]
<source lang="javascript"> var img = new Image();
var rejectTimer = setTimeout( function() {
reject(Error("It broke"));
}, 4 * 1000);
img.onload = function() { clearTimeout(rejectTimer); resolve("Stuff worked!"); };
img.src = "https://www.google.com/images/srpr/logo11w.png?res";
function resolve(msg) {
console.log(msg);
} function reject(err) {
console.error(err);
};
</source>
Example with Promise[edit]
<source lang="javascript"> var promise = new Promise(function(resolve, reject) {
var img = new Image();
var rejectTimer = setTimeout( function() { reject(Error("It broke")); }, 4 * 1000);
img.onload = function() { clearTimeout(rejectTimer); resolve("Stuff worked!"); } img.src = "https://www.google.com/images/srpr/logo11w.png?sss";
});
promise.then(
function(msg) { console.log(msg); }, function(err) { console.error(err);
}); </source>