Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用第一个ajax调用对最后一个ajax调用的响应_Jquery_Ajax_Promise - Fatal编程技术网

Jquery 使用第一个ajax调用对最后一个ajax调用的响应

Jquery 使用第一个ajax调用对最后一个ajax调用的响应,jquery,ajax,promise,Jquery,Ajax,Promise,我对jquery的承诺相当陌生。 我想问一下,这种情况是否可能: 我有两个ajax调用,我正在使用。然后将它们链接起来。这就是我想做的: ajaxCall1().then(ajaxCall1).done(functionCallHere); 我可以在ajaxCall2中使用ajaxCall1的响应,这正是我真正想要做的。 但是,最后我想在函数callhere中同时使用ajaxCall1和ajaxCall2的响应 我在这里搜索过类似的问题,但从未找到过。所以是否可以在函数Callhere中访问a

我对jquery的承诺相当陌生。 我想问一下,这种情况是否可能:

我有两个ajax调用,我正在使用。然后将它们链接起来。这就是我想做的:

ajaxCall1().then(ajaxCall1).done(functionCallHere);
我可以在ajaxCall2中使用ajaxCall1的响应,这正是我真正想要做的。 但是,最后我想在函数callhere中同时使用ajaxCall1和ajaxCall2的响应

我在这里搜索过类似的问题,但从未找到过。所以是否可以在函数Callhere中访问ajaxCall1的响应?如果是,我该怎么做? 它与$.whenajax1、ajax2.donefunctionr1、r2的工作方式类似吗?如果在函数中放入两个参数,它会自动解释为response1和response2

此外,我尝试不使用.when,因为我不希望调用异步运行或分叉。尽可能多我只想把他们锁起来。当然,如果这是唯一的方法,那么我可以恢复使用它


非常感谢

您可以通过嵌套来完成

ajaxCall1()
    .then((response) => {
         ajaxCall2()
             .then((response2) => { 
                 functionCallHere(response);
         })
    })
也可以在所有ajax调用之前定义变量

var response1;
var response2;
ajaxCall1()
    .then((response) => {
         response1 = response; 
         ajaxCall2()
             .then((response2) => { 
                 response2 = response2; 
         })
    })
   .done(functionCallHere(response1)); // or other variable you want to pass.
您还可以尝试一个解决方案->

async function yourFunction() {
    var response1 = await ajaxCall1();
    var response2 = await ajaxCall2();
    functionCallHere(response1); // or other variable you want to pass.
}

注意:不要错过async before函数

你试过了吗?ajaxCall1.thenresponse=>{ajaxCall2;functionCallHereresponse;}当然,您可以在内部调用函数Callhere。而且你知道你可以把你的回复传递给一个函数。谢谢!是的,这是我的第一个方法。我只是想知道是否有这样一种方法,你可以这样做:``.thenajx2.thenajx3.thenajx4.donefunctionHere``和functionHere可以使用所有ajax调用响应,这样它的工作原理就和.$一样了。当函数s1、rs2、rs3运行时,它看起来会更干净。但是是的,你的答案是有效的!谢谢你!哦。。我使用的解决方案类似于在所有ajax调用之前定义变量的第二个解决方案。非常感谢。这真的帮助了我!我必须阅读有关async的内容,并在使用它们之前等待关键字-正如我所说,我对这个概念完全陌生。谢谢你的建议!