关于Promise中then方法和catch方法个人理解
HTML
2020-02-26 14:13:55
写在开始之前的话,本篇博客仅仅是个人的理解,如果与官方或您所理解的有误,欢迎指出!
了解Promise的想必也清楚它的两个参数:resolve和reject方法!
resolve是成功后调用的方法,那么相应的reject就是失败后调用的方法。这里关于这两个方法并不做详细介绍。
Promise中的方法就是把原来的回调写法分离出来,在异步操作执行完后,用链式调用的方式执行回调函数。
简单使用如下:
new Promise(function (resolve, reject) {
var timer = setTimeout(function () {
resolve('这是数据1');
}, 1000);
}).then((value)=>{
console.log(value);//这是数据1
});
从上面的简单示例可以看出,then方法打印的数据是resolve反馈的数据。从这里我们是不是可以认为,then的数据来自于Promise执行成功后的反馈数据。
看到这里,我们再来看看官方中then的概述。
then 方法接收两个函数作为参数,第一个参数是 Promise 执行成功时的回调,第二个参数是 Promise 执行失败时的回调,两个函数只会有一个被调用。
从官方概述中可以知道实际上then是有两个参数的,那么如果只有一个参数时,那么代表的是成功。也就是上方的示例效果。
到这里关于then的描述也算是完整了,以下一段算是个人对then的总结。
then包含两个参数,分别为执行成功和执行失败的回调。当then只传递一个参数时,则传递的是成功的回调。简而言之,then的使用是成功失败的回调。
catch方法
catch方法等同于then中第二个参数,也就是说当执行失败是会执行到catch中。
注意点:如果没有使用catch方法指定处理错误的回调函数,Promise对象抛出的错误不会传递到外层代码,即不会有任何反应(Chrome会抛错)。
六月初字帖坊小程序
你想要的字帖模板及工具,这里都有!
877篇文章
5385人已阅读