javascritp promise call then multiple times
对同一个promise调用多次then方法。
平时没有碰到promise重复调用的场景,所以一开始也不能确定到底会发生什么。只能实际跑一下。
1 | let test = new Promise((resolve, reject) => { |
实际两个then里面的函数都被执行了。查了一下MDN有明确的叙述。
回调函数始终会在then返回值后被调用,即使promise早已完成或已被拒绝。也可对多次调用同一个promise的then方法。所有的回调函数会按照其注册的顺序被调用。
当多次调用同一个promise的then方法,所有注册的回调函数独立执行。如,当在一个回调函数中出现异常时,不会影响后面回调函数的执行。回调函数的结果只会对其注册所使用的then方法返回的promise产生影响,每一次调用then方法返回的都是不同的promise对象。
第一个then在1秒后被调用,第二个then因为promise已经是fullfilled状态,所以会被立即执行。
catch和then表现一样。