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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS:如何使第二個功能等待第一個功能的結(jié)果?

JS:如何使第二個功能等待第一個功能的結(jié)果?

慕桂英3389331 2021-04-15 13:14:32
我有2個函數(shù),我需要函數(shù)B在函數(shù)A完成后才能運行。我已經(jīng)閱讀了一些文檔,根據(jù)這些文檔,我需要使用async和await。函數(shù)A:我的函數(shù)A涉及一些AJAX調(diào)用。我已經(jīng)答應(yīng)了function get_initial_prices() {         return new Promise(resolve => {         var size_selected = $('input[name=size]:checked').val();                        var c_slug = $('.c_slug').text();                        var product_slug = $('.product_slug').text();            req = $.ajax({                     url: "/prices/",                      data: { // Pass parameters in separate object                       size_selected: size_selected,                        c_slug: c_slug,                        product_slug: product_slug                      },                  });             req.done(function (response) {                  $('#prices').empty();                  var prices = response.prices;                  $('.price').text(function (index) {                      return "S/ " + prices[index];                  });                 });               });            }函數(shù)B:目前,此函數(shù)將僅收集所有帶有.priceclass的span元素中的文本并發(fā)出警報。這些文本由呈現(xiàn)function A。function calculate_savings() {       await get_initial_prices();       var prices = $(".price")                    .map(function () {                    return $(this).text().replace('S/ ', '');                    }).get().join();       alert("savings: " + prices);}當(dāng)文檔準(zhǔn)備就緒時,我將它們都調(diào)用,但是get_initial_prices應(yīng)該先運行:$("document").ready(function () {    get_initial_prices();    calculate_savings();   });
查看完整描述

2 回答

?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗 獲得超6個贊

new Promise當(dāng)$.ajax已經(jīng)返回一個諾言時,不要用創(chuàng)建諾言。


另外,您只能await在async函數(shù)中使用。而且,在回調(diào)get_initial_prices中calculate_savings和在ready回調(diào)中調(diào)用都沒有意義。


例如:


function get_initial_prices() {

    var size_selected = $('input[name=size]:checked').val();

    var c_slug = $('.c_slug').text();

    var product_slug = $('.product_slug').text();


    return $.ajax({

        url: "/prices/",

        data: { // Pass parameters in separate object

            size_selected: size_selected,

            c_slug: c_slug,

            product_slug: product_slug

        },

    }).then(function (response) {

        $('#prices').empty();

        var prices = response.prices;

        $('.price').text(function (index) {

            return "S/ " + prices[index];

        });

    });

}


async function calculate_savings() {

    await get_initial_prices();

    var prices = $(".price").map(function () {

        return $(this).text().replace('S/ ', '');

    }).get().join();

    alert("savings: " + prices);

}


$("document").ready(function () {

    calculate_savings();

});

我應(yīng)該補充一點,盡管首先使用響應(yīng)將價格寫在頁面上,然后立即將這些價格再次從頁面提取到數(shù)組中是很奇怪的。似乎您應(yīng)該只跟蹤響應(yīng),而該響應(yīng)已經(jīng)是一個數(shù)組。


查看完整回答
反對 回復(fù) 2021-04-29
?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊

函數(shù)的簡化版本(注意“數(shù)據(jù)”和“ responseData”變量)


function get_initial_prices() {

return new Promise(resolve => {


    $.ajax({

        url: "/prices/"

    }).done(function (data) {

        alert('get_initial_prices fired!');

        resolve(data);

    });

})

}


function calculate_savings(responseData) {

    alert(responseData);

}



$(document).ready(function() {

    get_initial_prices().then(calculate_savings);

});


查看完整回答
反對 回復(fù) 2021-04-29
  • 2 回答
  • 0 關(guān)注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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