Bir javascript Sözünde yer alan tüm işlenmemiş istisnaları/retleri yakalamak istiyorum. Promise zincirinin her bir ucuna .catch(..)
eklemeden onları yakalamak için iyi bir yöntem var mı? (Bunu eklemeyi unutma durumunda, hata sessizce kaybolur).Tüm işlenmemiş javascript vaatlerini reddetme
Google Chrome'daki geliştirici konsolu bunları kaydedebilir, bunları bir üretim ortamında da kaydetmeyi seviyorum.
Normal javascript istisnaları için window.onerror
işlevini kullanıyorum, ancak Promise'deki hatalar bu işlevi çağırıyor.
Örnek:
window.onerror = function (e) {
alert("unhandled error: " + e);
};
var p = new Promise(function (resolve, reject) {
var nullObject = null;
// Raise a TypeError: Cannot read property 'forceNullError' of null
var x = nullObject.forceNullError();
resolve();
});
p.then(function() { alert('success'); });
JSFiddle: https://jsfiddle.net/f7zwej6L/
*) Ben WinJS ne istiyorum için .done(..)
yöntemi olduğunu fark, ancak Yerli Sözler yok.
'.done 'ile eşdeğerdir.o zaman (bitti, bitti), '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'işlevini yerine getirdikten sonra, cevabınız için çok teşekkür ederim ( –
@JaromandaX). Bunu MSDN'de bulduğum "İşlevi olmayan işlevler, söz konusu işlevin bir parçası olarak sessizce yakalanır, ancak işlenen işlevdeki işlenmemiş özel durumlar atılır." [Msdn] (https://msdn.microsoft.com/en-us/library/windows/apps/hh700337.aspx). –
Hayır, '.done **, ** .then (bitti, bitti)' ye eşdeğer değil. Http://stackoverflow.com/questions/26667598/will-javascript-es6-promise-support-done-api/26667655#26667655 adresine bakın. –