javascript - ajax 提交请求后返回订单号,然后通过订单号再继续发起ajax请求直到结果为处理完成。
伊谢尔伦
伊谢尔伦 2017-04-11 13:01:59
[JavaScript讨论组]

ajax 提交请求后返回订单号,然后通过订单号再继续发起ajax请求直到结果为处理完成。

$.ajax({ 
            url: "./", 
            type:"post", 
            data: data,
            dataType:"json",
            success: function(data){
                //这里拿到data订单号,然后怎么在这里发送查询处理结果的ajax请求,或者有什么更好的办法
            }
        })

因为我提交的请求过去,结果要等几分钟才会返回

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(6)
黄舟

非要这样做的话
下面是伪代码

async function getInfo(id){
    const p = new Promise(function(resolve){
        $.ajax({ 
            url: "/", 
            type:"get", 
            data: {id:id},
            dataType:"json",
            success: function(data){  
                resolve(data.finished)
            }
        })
    })

    let finished  =  await p
 
    if(!finished){
        getInfo(id)
    }else{
        console.log("finished")
    }
}


$.ajax({ 
            url: "./", 
            type:"post", 
            data: data,
            dataType:"json",
            success: function(data){
                //这里拿到data订单号,然后怎么在这里发送查询处理结果的ajax请求,或者有什么更好的办法
                getInfo(data)
            }
        })
ringa_lee

1.ajax中再嵌套一个ajax请求
2.在服务器端一起处理之后再返回

高洛峰

ajax后不处理数据又接一个新的ajax不是很蠢么?那直接叫服务器返回数据的时候直接拿订单号进行进一步处理后给你啊。
如果返回订单号是个列表你还要遍历,那得多少请求。。。页面还不崩溃。。。

PHP中文网

非得这样做的话可以用Promise处理回调。避免回调嵌套,不美观。后端本可以一步做完的事为啥要两步呢。

PHPz

https://i.jakeyu.top/2017/03/...

使用async函数

PHP中文网

推荐使用promise,如4楼

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号