在做移动app开发的时候,需要每次发送请求,都会有‘菊花’提示,请求发送完毕,就需要关闭loading提示框,不然界面就无法被点击。但是请求有的是成功、有的失败、有的超时,为了不影响整个系统的正常使用,就需要强制关闭提示框,正好利用promise的finally来关闭提示框
案例
var promise = new Promise(function(resolve, reject) { console.log("promise") window.setTimeout(function(){ if (false){ resolve('huangbiao'); } else { debugger reject('error'); } },1000) }).then(function(){ console.log('success'); }).catch(function(){ console.log('catch'); }).finally(function(){ console.log('finally'); });
结果
error
catch
finally
知识点
不管promise最后的状态,在执行完then或catch指定的回调函数以后,都会执行finally方法指定的回调函数。