Promise【二】
Promise.all的用法
1.它接受一个数组作为参数。
2.数组可以是Promise对象,也可以是其它值,只有Promise会等待状态改变。
3.当所有的子Promise都完成,该Promise完成,返回值是全部值的数组。
4.如果有任何一个失败,该Promise失败,返回值是第一个失败的子Promise的结果。
function demo() { Promise.all([test(),test1()]).then((res)=>{ console.log(res) }) console.log('同步内容') } function test() { return new Promise(resolve => { Axios.get('https://www.fastmock.site/mock/46fde81ecfdc20038b863c7d7a8513ea/test/api/test').then((res) => { console.log(res) resolve(res) console.log('同步测试') }) }) } function test1() { return new Promise(resolve => { Axios.get('https://www.fastmock.site/mock/46fde81ecfdc20038b863c7d7a8513ea/test/api/demo').then((res) => { console.log(res) resolve(res) console.log('同步测试1+++++') }) }) }
Promise.race的用法
类似于Promise.all() ,区别在于 它有任意一个返回成功后,就算完成,但是 进程不会立即停止
function demo() { Promise.race([test(),test1()]).then((res)=>{ console.log(res) }) console.log('同步内容') } function test() { return new Promise(resolve => { Axios.get('https://www.fastmock.site/mock/46fde81ecfdc20038b863c7d7a8513ea/test/api/test').then((res) => { console.log(res,'调试第一个接口数据') resolve(res) console.log('同步测试') }) }) } function test1() { return new Promise(resolve => { Axios.get('https://www.fastmock.site/mock/46fde81ecfdc20038b863c7d7a8513ea/test/api/demo').then((res) => { console.log(res,'调试第二个接口数据') resolve(res) console.log('同步测试1+++++') }) }) }