⊗jsSpACEx 158 of 294 menu

Ngoại lệ trong các callback bất đồng bộ trong JavaScript

Giả sử, nếu tham số make được truyền vào là chỉ mục của một phần tử không tồn tại trong mảng - đó là một tình huống ngoại lệ. Như bạn đã biết, các ngoại lệ phát sinh bên trong một hàm bất đồng bộ không thể được bắt qua try-catch. Trong trường hợp của chúng ta, ngoại lệ phát sinh bên trong make hoặc callback sẽ không được bắt:

try { make(10, function(res) { console.log(res); }); } catch(err) { // sẽ không bắt được }

Trong cách tiếp cận bằng callback, người ta làm việc với ngoại lệ như sau: tham số đầu tiên của callback được dùng để gửi kết quả, và tham số thứ hai - để gửi lỗi. Trong trường hợp này, việc xử lý lỗi diễn ra như sau:

make(10, function(res, err) { if (!err) { console.log(res); // không có lỗi xảy ra, in kết quả } else { console.log(err); // lỗi xảy ra, in văn bản lỗi } });

Hãy sửa đổi mã của hàm make của chúng ta theo mô tả trên:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // văn bản lỗi } else { err = null; // không có lỗi } callback(arr[num], err); }, 3000); }
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối