javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > Promise then链机制

Promise中的then链机制用法详解

作者:二货少年

这篇文章给大家详细介绍了Promise中的then链机制用法,每一次 .then都会返回一个新的promise实例,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下

Promise中的then链机制

因为每一次 .then都会返回一个新的promise实例,所以我们就可以持续 .then下去了

而且因为实例诞生的方式不同,所以状态判断标准也不同

只要实例的状态和值我们分析好,则.then(onfulfilled,onrejected)存放的两个方法哪一个执行,我们就知道了

then链的穿透性(顺延)

正常情况下,.then的时候会传递两个函数onfulfilled/onrejected,但是有些时候,我们是不传递其中的某个函数的,这种情况下我们需要采取“顺延策略”:找到下一个then中对应状态的函数执行

例如:.then(null,onrejected) 或者 .then(onfulfilled);

.then中的异步

promise.then(onfulfilled,onrejected)

catch

真实项目中,我们经常.then中只传递onfulfilled,处理状态是成功的事情;在then链的末尾设置一个catch,处理失败的事情(依托于then链的穿透机制,无论最开始的还是哪个then中,出现了让状态为失败的情况,都会顺延到最末尾的catch部分)

Promise.all

//异步的“并行”:同时处理,相互之间互不影响
fn1().then(result => {
    console.log(result);
});
fn2().then(result => {
    console.log(result);
});
fn3().then(result => {
    console.log(result);
}); 

并行中的综合处理:一起发送多个请求(处理多个异步),但是需要等到所有异步都成功,我们在整体做啥事!!

let promise = Promise.all([promise1,promise2,...]);

async

async修饰符:修饰一个函数,让函数的返回值成为一个promise实例,这样就可以基于THEN链去处理了

async最主要的作用就是:如果想在函数中使用await,则当前函数必须基于async修饰。

await

等待,一般在其后面放promise实例,它会等待实例状态为成功,再去执行“当前上下文”await下面的代码【如果promise实例管控的是一个异步编程,其实他是在等待异步执行成功,再执行下面代码,类似于异步改为同步效果】

如果后面放的不是promise实例,则浏览器默认会把其转换为“状态为成功,值就是这个值”的实例

await 10; --> await Promise.resolve(10);

以上就是Promise中的then链机制用法详解的详细内容,更多关于Promise then链机制的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文