Open cqupt-yifanwu opened 7 years ago
关于错误处理,如果
var promise = new Promise(function(resolve, reject) {
resolve("ok");
setTimeout(function() { throw new Error('test') }, 0)
});
promise.then(function(value) { console.log(value) });
错误在promise执行结束之后才会抛出,所以变成一个未被捕获的错误,Node.js有一个unhandledRejection事件,专门监听未捕获的reject错误。
process.on('unhandledRejection', function (err, p) {
console.error(err.stack)
});
上面代码中,unhandledRejection事件的监听函数有两个参数,第一个是错误对象,第二个是报错的Promise实例,它可以用来了解发生错误的环境信息。
console.log("after new Promise");
p.then(function(value){ console.log(value); });