第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

等待函數(shù)內(nèi)的多個(gè) ajax 調(diào)用?

等待函數(shù)內(nèi)的多個(gè) ajax 調(diào)用?

ibeautiful 2022-08-04 17:14:46
上下文:創(chuàng)建一個(gè)ajax重頁(yè)面,根據(jù)先前選擇器的選擇更改不同選擇器中的值。致力于根據(jù)先前的條目制作“重新填充”選項(xiàng)。當(dāng)選擇器 1 發(fā)生更改時(shí),將進(jìn)行 ajax 調(diào)用,以填充選擇器 2 和 3。選擇器 1 的選項(xiàng)永遠(yuǎn)不會(huì)改變。當(dāng)您從前面的條目“重新填充”時(shí),代碼首先更改選擇器 1 的值,然后在選擇器 1 上激活更改事件。function repopulateFromEntry(event)  {    // We want the children of the parent TR.    // <tr>    //  <td>...</td>    //  ...    //  <td><button></td>    // <tr>    let td_list = event.target.parentElement.parentElement.children;    $('#selector1').val(td_list[0].innerHTML);    $('#selector1').change();    // Do other things that rely on prior to be finished    // Problem is here.};選擇器 1 的更改事件如下所示。async function executeAjax(url, success) {    return await $.ajax({        url: url,        type: "GET",        success: success    });}$('#selector1').change(async function(e) {    await executeAjax('api/selector2' + $("#selector1").val(), function() {        // Set selector2 from ajax data    });    await executeAjax('api/selector3' + $("#selector1").val(), function() {        // Set selector3 from ajax data    });});根據(jù)選擇器 1 的值設(shè)置選擇器選項(xiàng)后,它進(jìn)入并為選擇器 2 和 3 選擇正確的值。我的問(wèn)題是,在選項(xiàng)完全填充到選擇器之前,選擇器2和3的值的重新選擇被調(diào)用,從而使重新選擇失敗。我顯然從異步/等待/ajax部分遺漏了一些東西,以防止它在沒有完成兩個(gè)調(diào)用的情況下繼續(xù),但我似乎看不到我的問(wèn)題是什么。
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

好的,所以我對(duì) $.ajax 調(diào)用使用了 async/await,然后在更改事件處理程序中,我使用 .then 方法對(duì)生成的數(shù)據(jù)進(jìn)行操作。(也可以在事件處理程序中使用異步等待,但是由于您最初擁有它并且它不起作用,因此我選擇了promise)。


我很確定這應(yīng)該有效,但如果沒有,請(qǐng)讓我知道控制臺(tái)顯示的內(nèi)容。


注意您可能需要在設(shè)置每個(gè)選擇器的值之前,控制臺(tái).log結(jié)果并提取要查找的數(shù)據(jù)。您可以在 .then 方法中執(zhí)行此操作。


async function executeAjax(url) {


    let result;


    try { 

        result = await $.ajax({

            url: url,

            type: "GET"

        });


        return result;


    } catch (error) {

        console.log(error);

    }

}


$('#selector1').change(function(e) {


    executeAjax('api/selector2' + $("#selector1").val())

    .then((result) => { 

        // console.log(result);  <-- may need to find and pull the data you are looking for out of result

        // let myVal = result[?]['something'].orother;

        $("#selector2").val(result); 

    });


    executeAjax('api/selector3' + $("#selector1").val())

    .then((result) => {

        // console.log(result);  <-- may need to find and pull the data you are looking for out of result

        // let myVal = result[?]['something'].orother;

        $("#selector3").val(result);

    });


});


查看完整回答
反對(duì) 回復(fù) 2022-08-04
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)