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

JavaScript AJAX 異步回調中使用返回數據的正確姿勢

     編輯:程式設計疑難解答

問題

在 `myfun` 中發起 AJAX,成功回調裡賦值給 `images` 變量,但在外層代碼(同步執行)中無法使用 `images`,因為 AJAX 預設異步。

方案一:同步 AJAX(不推薦,阻塞 UI)

$.ajax({
    async: false,  // 同步
    url: "...",
    success: function(data) {
        images = data;
    }
});
// 這裡可直接用 images

方案二:回調/ Promise 鏈(推薦)

function myfun(callback) {
    $.ajax({
        url: "...",
        success: function(data) {
            callback(data);  // 將數據傳給回調
        }
    });
}

// 使用
myfun(function(images) {
    // 這裡處理 images
    $(".gallery").html(render(images));
});

或用 `$.ajax().then(...)` / `async/await`(配合 `fetch`)。

核心概念

**異步非阻塞**:發起請求後主線程繼續執行,回調稍後執行。外層代碼不可依賴異步結果,必須將後續邏輯放入回調/then 中。

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