鸿蒙使用Promise.all()一次性处理所有网络请求

313 阅读1分钟

介绍

Promise.all()是promise的静态方法, Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。

编写网络接口

import { http } from '@kit.NetworkKit'

export const baidu=()=>{
  let req=http.createHttp()
  return req.request('https://www.baidu.com')
}

export const bing=()=>{
  let req=http.createHttp()
  return req.request('https://www.bing.com')
}

export const gitee=()=>{
  let req=http.createHttp()
  return req.request('https://www.gitee.com')
}

export const github=()=>{
  let req=http.createHttp()
  return req.request('https://www.github.com')
}

将四个promise对象全部加入Promise.all里面

这样,我们就可以同时处理四个请求

const res:http.HttpResponse[]=await Promise.all([baidu(),bing(),gitee(),github()])
Log.info(JSON.stringify(res[0].result),'百度')
Log.info(JSON.stringify(res[1].result),'bing')
Log.info(JSON.stringify(res[2].result),'gitee')
Log.info(JSON.stringify(res[3].result),'github')

image.png

image.png