美文网首页
Promise.all代替axios.all

Promise.all代替axios.all

作者: EasyNetCN | 来源:发表于2020-08-19 20:34 被阅读0次

昨天正在做一个功能,需要前端调用十几个接口,十几个接口完成后,再刷新页面,然后看了一下axios的官网(https://github.com/axios/axios)才发现axios.all已经被标记为Deprecated,并且建议用Promise.all。

以下示例代码,实现了根据页面返回结果,动态构建多个请求,所有请求完成后,重新执行检索,刷新结果。

这里面有嵌套的请求,注意一定要return。

        let requests = [];

        this.pageResult.data.forEach((item) => {
          requests.push(
            getServiceVersion(item)
              .then((response) => {
                const currentVersion = response.data.version;

                if (item.version != currentVersion) {
                  this.$Message.info(
                    "服务:" +
                      item.name +
                      " 数据库版本:" +
                      item.version +
                      " 当前版本:" +
                      currentVersion
                  );

                  return updateService(
                    Object.assign(item, { version: currentVersion })
                  )
                    .then((res) => {
                      return res;
                    })
                    .catch((error) => {
                      return error;
                    });
                }
              })
              .catch((error) => {
                return error;
              })
          );
        });

        Promise.all(requests).then((responses) => {
          this.search();
        });
      }

相关文章

网友评论

      本文标题:Promise.all代替axios.all

      本文链接:https://www.haomeiwen.com/subject/mridjktx.html