1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

docs(promise): edit promise

This commit is contained in:
ruanyf 2017-05-25 20:52:05 +08:00
parent 6cffe77c7c
commit b939b7725c

View File

@ -351,7 +351,7 @@ someAsyncThing().then(function() {
});
```
上面代码中,`someAsyncThing`函数产生的Promise对象会报错但是由于没有指定`catch`方法,这个错误不会被捕获,也不会传递到外层代码导致运行后没有任何输出。注意Chrome浏览器不遵守这条规定它会抛出错误“ReferenceError: x is not defined”
上面代码中,`someAsyncThing`函数产生的 Promise 对象会报错,但是由于没有指定`catch`方法,这个错误不会被捕获,也不会传递到外层代码。正常情况下运行后不会有任何输出但是浏览器此时会打印出错误“ReferenceError: x is not defined”不过不会终止脚本执行如果这个脚本放在服务器执行退出码就是`0`(即表示执行成功)
```javascript
var promise = new Promise(function (resolve, reject) {
@ -363,7 +363,7 @@ promise.then(function(value) { console.log(value) });
// Uncaught Error: test
```
上面代码中Promise 指定在下一轮“事件循环”再抛出错误,结果由于没有指定使用`try...catch`语句就冒泡到最外层成了未捕获的错误。因为此时Promise的函数体已经运行结束了所以这个错误是在Promise函数体外抛出的
上面代码中Promise 指定在下一轮“事件循环”再抛出错误。到了那个时候Promise 的运行已经结束了,所以这个错误是在 Promise 函数体外抛出的,会冒泡到最外层,成了未捕获的错误
Node 有一个`unhandledRejection`事件,专门监听未捕获的`reject`错误。