promise 第二个接口如何使用第一个接口返回的数据?

发布于 2022-09-11 14:45:58 字数 2143 浏览 13 评论 0

第二个接口使用第一个接口返回的数据name,再拼接处理,不用promise.all 不用全局变量。求解?

clipboard.png

function ajax(url,datas){
            return new Promise((resolve,reject) => {
                $.ajax({
                    url:url,
                    type:"post",
                    dataType:"json",
                    data:datas,
                    success:function(data){
                        resolve(data);
                    },
                    error:function(error){
                        reject(error);
                    }
                });
            });
        }

        ajax('data/data.json',{'name':"1"}).then((json) => {
            console.log(json);
            let name = json.bean;
            return ajax('data/data1.json',{"age":30,"name":json.bean},json.bean);
        }).then((data) => {
            console.log(data.bean + name);
        }).catch((error) => {
            console.log(error.returnMessage);
        });

修正后的:

function ajax(url,datas){
            return new Promise((resolve,reject) => {
                $.ajax({
                    url:url,
                    type:"post",
                    dataType:"json",
                    data:datas,
                    success:function(data){
                        resolve(data);
                    },
                    error:function(error){
                        reject(error);
                    }
                });
            });
        }

        ajax('data/data.json',{'name':"1"}).then((json) => {
            let name = json.bean;
            let _ajax = ajax('data/data1.json',{"age":30,"name":json.bean});
            return{
                name:name,
                ajaxData:_ajax
            }
        }).then((data) => {
            data.ajaxData.then((v) => {
                console.log(data.name + v.bean);
            })
        }).catch((error) => {
            console.log(error.returnMessage);
        });

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

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

发布评论

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

评论(2

哀由 2022-09-18 14:45:58

name定义在外面

let name = '';
ajax('data/data.json',{'name':"1"}).then((json) => {
    console.log(json);
    name = json.bean;
    return ajax('data/data1.json',{"age":30,"name":json.bean},json.bean);
}).then((data) => {
    console.log(data.bean + name);
}).catch((error) => {
    console.log(error.returnMessage);
});
随遇而安 2022-09-18 14:45:58
let name = json.bean;
let _ajax = ajax('data/data1.json',{"age":30,"name":json.bean},json.bean);
return {
    name:name,
    ajaxData:_ajax
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文