Baseline Widely available
ÐеÑод catch() возвÑаÑÐ°ÐµÑ Ð¿ÑÐ¾Ð¼Ð¸Ñ (Promise(
) и ÑабоÑÐ°ÐµÑ ÑолÑко в ÑлÑÑае оÑÐºÐ»Ð¾Ð½ÐµÐ½Ð¸Ñ Ð¿ÑомиÑа. ÐедÑÑ ÑÐµÐ±Ñ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñно вÑÐ·Ð¾Ð²Ñ Promise.prototype.then(undefined, onRejected)
.
p.catch(onRejected); p.catch(function(reason) { // оÑказ });ÐаÑамеÑÑÑ
Function
вÑзÑваеÑÑÑ ÐºÐ¾Ð³Ð´Ð° пÑÐ¾Ð¼Ð¸Ñ Ð¾Ñклонен. У ÑÑой ÑÑнкÑии один аÑгÑменÑ:
reason
ÐÑиÑина оÑказа.
ÐÑомиÑ, возвÑаÑÑннÑй catch (), оÑклонÑеÑÑÑ, еÑли onRejected вÑдаÑÑ Ð¾ÑибкÑ(throw) или возвÑаÑÐ°ÐµÑ Promise, коÑоÑÑй бÑл оÑклонÑн; РпÑоÑивном ÑлÑÑае Promise, возвÑаÑаемÑй catch () Ð¸Ð¼ÐµÐµÑ ÑÑаÑÑÑ Ð²Ñполнено (fulfilled)
ÐеÑод catch Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ Ð´Ð»Ñ Ð¾Ð±ÑабоÑки оÑибок
в ваÑей ÑÑÑÑкÑÑÑе пÑомиÑов.
catch
var p1 = new Promise(function (resolve, reject) {
resolve("Success");
});
p1.then(function (value) {
console.log(value); // "Success!"
throw "oh, no!";
})
.catch(function (e) {
// ФÑнкÑÐ¸Ñ Ð½Ðµ пеÑевÑбÑоÑила иÑклÑÑение 'e'
// в ÑезÑлÑÑаÑе пÑоизойдÑÑ resolve(undefined)
// Ð´Ð»Ñ Promise, возвÑаÑÑнного ÑÑнкÑией catch
console.log(e); // "oh, no!"
})
.then(
function () {
console.log("after a catch the chain is restored");
},
function () {
// ФÑнкÑÐ¸Ñ Ð½Ðµ пеÑевÑбÑоÑила иÑклÑÑение 'e'
// в ÑезÑлÑÑаÑе пÑоизойдÑÑ resolve(undefined)
// Ð´Ð»Ñ Promise, возвÑаÑÑнного ÑÑнкÑией catch
console.log("Not fired due to the catch");
},
);
// СледÑÑÑий код ведÑÑ ÑÐµÐ±Ñ Ñакже, как вÑÑенапиÑаннÑй
p1.then(function (value) {
console.log(value); // "Success!"
return Promise.reject("oh, no!");
})
.catch(function (e) {
// ФÑнкÑÐ¸Ñ Ð½Ðµ пеÑевÑбÑоÑила иÑклÑÑение 'e'
// в ÑезÑлÑÑаÑе пÑоизойдÑÑ resolve(undefined)
// Ð´Ð»Ñ Promise, возвÑаÑÑнного ÑÑнкÑией catch
console.log(e); // "oh, no!"
})
.then(
function () {
console.log("after a catch the chain is restored");
},
function () {
// ФÑнкÑÐ¸Ñ Ð½Ðµ пеÑевÑбÑоÑила иÑклÑÑение 'e'
// в ÑезÑлÑÑаÑе пÑоизойдÑÑ resolve(undefined)
// Ð´Ð»Ñ Promise, возвÑаÑÑнного ÑÑнкÑией catch
console.log("Not fired due to the catch");
},
);
Ðовим вÑбÑоÑеннÑе иÑклÑÑениÑ
// ÐÑкидÑÐ²Ð°ÐµÐ¼Ð°Ñ Ð¾Ñибка вÑÐ·Ð¾Ð²ÐµÑ Ð¼ÐµÑод catch
var p1 = new Promise(function (resolve, reject) {
throw "Uh-oh!";
});
p1.catch(function (e) {
console.log(e); // "Uh-oh!"
});
// ÐÑибки вÑбÑоÑеннÑе из аÑинÑ
ÑоннÑÑ
ÑÑнкÑий не бÑдÑÑ Ð¿Ð¾Ð¹Ð¼Ð°Ð½Ñ Ð¼ÐµÑодом catch
var p2 = new Promise(function (resolve, reject) {
setTimeout(function () {
throw "Uncaught Exception!";
}, 1000);
});
p2.catch(function (e) {
console.log(e); // Ðикогда не вÑзовеÑÑÑ
});
// ÐÑибки вÑбÑоÑеннÑе поÑле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÑомиÑа бÑдÑÑ Ð¿ÑоигноÑиÑованнÑ
var p3 = new Promise(function (resolve, reject) {
resolve();
throw "Silenced Exception!";
});
p3.catch(function (e) {
console.log(e); // Ðикогда не вÑзовеÑÑÑ
});
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4