首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 同步 AJAX 請求獲取返回值供外部函數使用的方法

     編輯:程式設計綜合問答

問題

異步 AJAX 回調返回值無法作為外層函數返回值 (外層已執行完畢)。

方案一:同步請求 (阻塞 UI,不推薦生產)


function getTotalIntegral() {
    var rst = null;
    $.ajax({
        url: 'api/integral',
        async: false, // 關鍵:同步
        success: function(data) { rst = data.integral; }
    });
    return rst;
}

方案二:回調/ Promise (標準異步)


// 回調風格
function getTotalIntegral(callback) {
    $.get('api/integral', function(data) { callback(data.integral); });
}
getTotalIntegral(function(val) { console.log(val); });

// Promise 風格 (jQuery 3+)
function getTotalIntegral() {
    return $.get('api/integral').then(res => res.integral);
}
getTotalIntegral().then(val => console.log(val));

建議

**棄用 `async: false`**,瀏覽器控制台會警告且可能凍結頁面。全面拥抱 Promise/async-await。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved