diff options
Diffstat (limited to 'files/vi/web/javascript/reference/global_objects/promise/catch/index.html')
-rw-r--r-- | files/vi/web/javascript/reference/global_objects/promise/catch/index.html | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/files/vi/web/javascript/reference/global_objects/promise/catch/index.html b/files/vi/web/javascript/reference/global_objects/promise/catch/index.html deleted file mode 100644 index 0564b81afd..0000000000 --- a/files/vi/web/javascript/reference/global_objects/promise/catch/index.html +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: Promise.prototype.catch() -slug: Web/JavaScript/Reference/Global_Objects/Promise/catch -translation_of: Web/JavaScript/Reference/Global_Objects/Promise/catch ---- -<div>{{JSRef}}</div> - -<p>Phương thức <strong>catch()</strong> trả ra một <code>Promise</code> để xử lý trường hợp xử lý của ta thất bại. Nó cũng giống như {{jsxref("Promise.then", "Promise.prototype.then(undefined, onRejected)")}} nhưng chỉ được gọi khi thao tác của ta thất bại.</p> - -<h2 id="Cú_pháp">Cú pháp</h2> - -<pre class="syntaxbox"><var>p.catch(onRejected)</var>; - -p.catch(function(reason) { - // rejection -}); -</pre> - -<h3 id="Tham_số">Tham số</h3> - -<dl> - <dt>onRejected</dt> - <dd>Một hàm {{jsxref("Function")}} được gọi khi mà <code>Promise</code> của ta thất bại. Hàm này có một tham số đầu vào là: - <dl> - <dt><code>reason</code></dt> - <dd>Lý do lỗi.</dd> - </dl> - </dd> -</dl> - -<h3 id="Trả_ra">Trả ra</h3> - -<p>Một {{jsxref("Promise")}} mới.</p> - -<h2 id="Mô_tả">Mô tả</h2> - -<p>Phương thước <code>catch</code> rất hữu ích cho việc xử lý các lỗi xảy ra trong 1 Promise hoặc một chuỗi Promise có quan hệ thứ tự với nhau (đợi nhau).</p> - -<h2 id="Ví_dụ">Ví dụ</h2> - -<h3 id="Sử_dụng_phương_thức_catch">Sử dụng phương thức catch</h3> - -<pre class="brush: js">var p1 = new Promise(function(resolve, reject) { - resolve('Success'); -}); - -p1.then(function(value) { - console.log(value); // "Success!" - throw 'oh, no!'; -}).catch(function(e) { - console.log(e); // "oh, no!" -}).then(function(){ - console.log('after a catch the chain is restored'); -}, function () { - console.log('Not fired due to the catch'); -}); - -// The following behaves the same as above -p1.then(function(value) { - console.log(value); // "Success!" - return Promise.reject('oh, no!'); -}).catch(function(e) { - console.log(e); // "oh, no!" -}).then(function(){ - console.log('after a catch the chain is restored'); -}, function () { - console.log('Not fired due to the catch'); -}); -</pre> - -<h3 id="Lấy_mã_lỗi_khi_ném_lỗi">Lấy mã lỗi khi ném lỗi</h3> - -<pre class="brush: js">// Throwing an error will call the catch method most of the time -var p1 = new Promise(function(resolve, reject) { - throw 'Uh-oh!'; -}); - -p1.catch(function(e) { - console.log(e); // "Uh-oh!" -}); - -// Errors thrown inside asynchronous functions will act like uncaught errors -var p2 = new Promise(function(resolve, reject) { - setTimeout(function() { - throw 'Uncaught Exception!'; - }, 1000); -}); - -p2.catch(function(e) { - console.log(e); // This is never called -}); - -// Errors thrown after resolve is called will be silenced -var p3 = new Promise(function(resolve, reject) { - resolve(); - throw 'Silenced Exception!'; -}); - -p3.catch(function(e) { - console.log(e); // This is never called -});</pre> - -<h2 id="Đặc_tả">Đặc tả</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Đặc tả</th> - <th scope="col">Trạng thái</th> - <th scope="col">Ghi chú</th> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-promise.prototype.catch', 'Promise.prototype.catch')}}</td> - <td>{{Spec2('ES6')}}</td> - <td>Initial definition in an ECMA standard.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-promise.prototype.catch', 'Promise.prototype.catch')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Trình_duyệt_hỗ_trợ">Trình duyệt hỗ trợ</h2> - -<p class="hidden">To contribute to this compatibility data, please write a pull request against this file: <a href="https://github.com/mdn/browser-compat-data/blob/master/javascript/promise.json">https://github.com/mdn/browser-compat-data/blob/master/javascript/promise.json</a>.</p> - -<p>{{Compat}}</p> - -<h2 id="Xem_thêm">Xem thêm</h2> - -<ul> - <li>{{jsxref("Promise")}}</li> - <li>{{jsxref("Promise.prototype.then()")}}</li> -</ul> |