Skip to content

Instantly share code, notes, and snippets.

@novemberborn
Created June 19, 2012 18:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save novemberborn/e9d65c058dfb12f38391 to your computer and use it in GitHub Desktop.
Save novemberborn/e9d65c058dfb12f38391 to your computer and use it in GitHub Desktop.
Deferred instrumentation example
d1 stack:
[object Deferred]
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:19:13
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20) instrument-rejected.html:20
d2p stack:
[object Promise]
at [object Object].then (http://dtk.dev/novemberborn/dojo/Deferred.js:217:24)
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:24:17
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20) instrument-rejected.html:27
d4 stack (undefined):
undefined instrument-rejected.html:42
Handled error:
Error: Handled error
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:33:14
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20) instrument-rejected.html:36
Error: Error created in global scope
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:14:21
----------------------------------------
rejected at http://dtk.dev/novemberborn/tests/instrument-rejected.html:29:7
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20)
----------------------------------------
[object Deferred]
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:19:13
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20) /novemberborn/dojo/promise/instrumenting.js:20
Error: Thrown in callback for d2
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:25:11
at http://dtk.dev/novemberborn/dojo/Deferred.js:36:21
at http://dtk.dev/novemberborn/dojo/Deferred.js:27:4
at [object Object].resolve (http://dtk.dev/novemberborn/dojo/Deferred.js:168:5)
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:30:7
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20)
----------------------------------------
rejected at http://dtk.dev/novemberborn/dojo/Deferred.js:77:15
at http://dtk.dev/novemberborn/dojo/Deferred.js:48:5
at http://dtk.dev/novemberborn/dojo/Deferred.js:27:4
at [object Object].resolve (http://dtk.dev/novemberborn/dojo/Deferred.js:168:5)
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:30:7
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20)
----------------------------------------
[object Deferred]
at [object Object].then (http://dtk.dev/novemberborn/dojo/Deferred.js:217:24)
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:24:17
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20) /novemberborn/dojo/promise/instrumenting.js:20
Error: Error for old-style deferred
at http://dtk.dev/novemberborn/tests/instrument-rejected.html:43:14
at http://dtk.dev/novemberborn/dojo/dojo.js:1049:43
at http://dtk.dev/novemberborn/dojo/dojo.js:1179:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1202:5
at http://dtk.dev/novemberborn/dojo/dojo.js:1366:7
at HTMLScriptElement.<anonymous> (http://dtk.dev/novemberborn/dojo/dojo.js:1597:20) /novemberborn/dojo/promise/instrumenting.js:20
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test</title>
<script>
var dojoConfig = {
async: true
};
</script>
<script src="../dojo/dojo.js"></script>
<script>
var globalError = new Error("Error created in global scope");
require(["dojo/main", "dojo/Deferred", "dojo/_base/Deferred"], function(dojo, Deferred, OldDeferred){
// Uncomment next line for immediate reporting of all rejections
// require(["dojo/promise/instrumenting!report-rejections"]);
// Rejecting a deferred directly
var d1 = new Deferred();
console.log("d1 stack:\n" + d1.stack);
// Rejecting a promise by throwing in a callback
var d2 = new Deferred();
var d2p = d2.then(function(){
throw new Error("Thrown in callback for d2");
});
console.log("d2p stack:\n" + d2p.stack);
d1.reject(globalError);
d2.resolve();
var d3 = new Deferred();
d3.reject(new Error("Handled error"));
setTimeout(function(){
d3.promise.then().otherwise(function(error){
console.log("Handled error:\n" + error.stack);
});
}, 500);
// What about old-style deferreds?
var d4 = new OldDeferred();
console.log("d4 stack (undefined):\n" + d4.stack);
d4.reject(new Error("Error for old-style deferred"));
});
</script>
</head>
<body>
<p>Check your console.</p>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment