axios支持同步方法吗?

发布于 2022-09-11 22:00:22 字数 661 浏览 16 评论 0

// 首先定义了一个同步方法
async checkProjectAbbreviationExists(params) {
    return await axios.get(`/by/ProjectPage/checkProjectAbbreviationExists`, {params});
}
// 此处调用同步方法,但是没法实现同步效果
checkProjectAbbreviationExists: function () {
   let p = service.checkProjectAbbreviationExists({
          formId: this.infoForm.formId,
          name: this.infoForm.name,
   });

    p.then((data)=>{
        console.log("------2------------");
        return false;
    });

    console.log("---------1--------");

    return true;
}

// 结果:先输出1,再输出2

我这边需要实现一个同步方法,但是axios好像无法实现这种效果

我需要获取请求返回的数据,就必须使用then,那就变成异步的了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

又怨 2022-09-18 22:00:22

axios 不支持同步,他就是异步方案。
async/await 也是异步方案。

如果你要完成的功能是按顺序回调,那就使用:

 p.then((data)=>{
        console.log("------2------------");
 }).then(()=> console.log("---------1--------"));

其他的 可以考虑使用ajax 把async配置项改为false,就能实现同步

扶醉桌前 2022-09-18 22:00:22
 checkProjectAbbreviationExists(params) {
    return axios.get(`/by/ProjectPage/checkProjectAbbreviationExists`, {params});
}

async checkProjectAbbreviationExists: function () {
   let p = await service.checkProjectAbbreviationExists({
          formId: this.infoForm.formId,
          name: this.infoForm.name,
   });
    console.log(p,"------2------------");
    console.log("---------1--------");

    return true;
}

这样写,p就是接口返回的数据

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文