weixin_33674437 2016-02-05 13:09 采纳率: 0%
浏览 13

如何嵌套ajax调用?

Here is my code.

Currently here every time inner ajax method will call when outer method mark as done.

var folderpath = encodeURIComponent('Recording' + new Date().getTime());
    var ajaxWorking = true;
    function uploadAudio(mp3Data) {
        var reader = new FileReader();
        reader.onload = function (event) {
            var fd = new FormData();
            var mp3Name = encodeURIComponent('audio_recording_' + new Date().getTime() + '.mp3');
            console.log("mp3name = " + mp3Name);
            fd.append('fname', mp3Name);
            fd.append('data', event.target.result);
            //Costin testing
            fd.append('studentId', '1');
            fd.append('folderpath', folderpath);
            fd.append('recording', stopRecording)

            $.ajax({
                type: 'POST',
                url: '/api/ClientApi/PostRecordedStream',
                data: fd,
                processData: false,
                contentType: false,
                success: function (data) {
                    console.log(data + " : AjaxDone");
                    ajaxWorking = false;
                }
            }).done(function (data) {
                console.log(data);
                //setTimeout(this, 5000);
                console.log(stopRecording + " : " + ajaxWorking);
                if (stopRecording == true && ajaxWorking == false) {
                    console.log(stopRecording + " : " + ajaxWorking + "LoadMP3");

                    $.ajax({
                        type: 'GET',
                        url: '/api/ClientApi/GetAudio',
                        data: { folderpath: folderpath },
                        success: function (data) {
                            console.log(data);
                        }
                    }).done(function (data) {
                        var url = 'data:audio/mp3;base64,' + data;
                        var li = document.createElement('li');
                        var au = document.createElement('audio');
                        var hf = document.createElement('a');
                        au.controls = true;
                        au.src = url;
                        hf.href = url;
                        hf.download = 'audio_recording_' + new Date().getTime() + '.mp3';
                        hf.innerHTML = hf.download;
                        li.appendChild(au);
                        li.appendChild(hf);
                        recordingslist.appendChild(li);
                    });
              }


            });
        };
        reader.readAsDataURL(mp3Data);
    }

Outer ajax will call multiple time from UI. But I want to call only when all outer ajax call are done.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 docker里部署springboot项目,访问不到扬声器
    • ¥15 netty整合springboot之后自动重连失效
    • ¥15 悬赏!微信开发者工具报错,求帮改
    • ¥20 wireshark抓不到vlan
    • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
    • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
    • ¥15 stata安慰剂检验作图但是真实值不出现在图上
    • ¥15 c程序不知道为什么得不到结果
    • ¥40 复杂的限制性的商函数处理
    • ¥15 程序不包含适用于入口点的静态Main方法