在done
承诺链中使用Q
的目的是什么? IIUC它传播错误。如果是这样,我怎么能抓住这个错误?
以下代码输出:Uncaught Error: hello world
。我怎么能抓到这个错误?我有使用.catch
语法,还是有其他方式?
<html>
<head>
<script src="http://cdnjs.cloudflare.com/ajax/libs/q.js/0.9.2/q.js"></script>
</head>
<body>
</body>
<script>
try {
var foo = {
bar: function() {
var d = Q.defer();
d.resolve();
return d.promise;
}
};
function bam() {
throw new Error('hello world');
}
foo.bar().then(bam).done(); // what is the purpose of done?
} catch (e) {
alert(e);
}
</script>
</html>
答案 0 :(得分:2)