javascript - jQuery post - 等待响应

标签 javascript jquery post

我在 for 循环中使用基本的 jQuery post 请求。

for (i = 1; i < 2; i++) {

     for (ii = 0; ii < 2; ii++) {

        $.post( "url", 'some data')
          .done(function( data ) {

            if(data.length > 2){
              $("#datagot").append(ii);
            }

        });
     }        


}

我需要将 ii 变量传递给 .done 函数,但脚本不会等到请求完成,因此每个请求的 ii 都不正确。

我怎样才能做到这一点?有没有办法将 ii 作为参数传递,有什么想法吗?

最佳答案

我认为这是错误的方法,根据你的代码,你正在为从 0 到 2 的每个 ii 执行 2 个 post 调用,所以 0 和 1 所以两个 ajax 调用,你需要延迟对象所以这样的事情如果它们是异步

$.when(callOne(),callTwo()).then(function(answerOne,answerTwo){
    if (answerOne == 'answerOneReturned' && answerTwo =='answerTwoReturned'){
        $("#datagot").append(answerOne);
         $("#datagot").append(answerTwo);
    }

});

function callOne(){
return $.ajax({
    url:'myUrl.php',
    type:'POST',
    dataType:'html'
    }).then(function(data) {
        if (data == 'something'){
             myAnswer = 'answerOneReturned';
        }

        return myAnswer;
    }); 
 }

function callTwo(){
return $.ajax({
    url:'myUrl.php',
    type:'POST',
    dataType:'html'
    }).then(function(data) {

        if (data == 'something'){
             myAnswerTwo = 'answerTwoReturned';
        }

        return myAnswerTwo;
    }); 
 }

如果它们是同步的,则与上面的功能相同,但是您必须使用为同步编写的这个

$.when(callOne()).then(function(answerOne){
    if (answerOne== 'answerOneReturned'){
        return callTwo();
    }

}).then(function(answerTwo){
    if (answerTwo== 'answerTwoReturned'){
        //Do append
    }

});

必须明确延迟对象允许执行,例如,异步调用 10 次 ajax 但处理所有答案并指向您想要的位置...所以如果 anwserOne 是 A 并且 answerTwo 是 B 在 answerOne 是 C 中做一件事并回答两个 id D 做另一件事....等等......等等......

抱歉,这是什么意思?

    for (i = 1; i < 2; i++) {

对于 i=1 和 minor or 2 没有必要?没有必要....

关于javascript - jQuery post - 等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47488710/

相关文章:

javascript - 使用 JavaScript 调用 Laravel Controller 中的 POST 方法

api - 在 HTTP 中,PUT 和 POST 发送数据的方式不同吗?

jquery - Masonry 的 CSS 系统替代方案

javascript - 通过回调异步访问 $get

PHP 深度扩展数组

javascript - Ajax 和 VbScript : fetching Post variable in test. asp

javascript - 带有 flex 子项的 Flex 包裹

javascript - 尝试从 spritesheet 为 sprite Phaser 3 制作动画 - 出现错误无法读取未定义的属性 'frame'

javascript - 带有 jQ​​uery 的谷歌地图 API

javascript - 如何在播放 HTML 5 视频(如 Youtube 广告)时添加图像/DIV?