From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../zh-cn/web/api/promiserejectionevent/index.html | 124 +++++++++++++++++++++ .../api/promiserejectionevent/promise/index.html | 66 +++++++++++ .../promiserejectionevent/index.html | 114 +++++++++++++++++++ 3 files changed, 304 insertions(+) create mode 100644 files/zh-cn/web/api/promiserejectionevent/index.html create mode 100644 files/zh-cn/web/api/promiserejectionevent/promise/index.html create mode 100644 files/zh-cn/web/api/promiserejectionevent/promiserejectionevent/index.html (limited to 'files/zh-cn/web/api/promiserejectionevent') diff --git a/files/zh-cn/web/api/promiserejectionevent/index.html b/files/zh-cn/web/api/promiserejectionevent/index.html new file mode 100644 index 0000000000..997aa87b43 --- /dev/null +++ b/files/zh-cn/web/api/promiserejectionevent/index.html @@ -0,0 +1,124 @@ +--- +title: PromiseRejectionEvent +slug: Web/API/PromiseRejectionEvent +translation_of: Web/API/PromiseRejectionEvent +--- +
{{APIRef("HTML DOM")}}
+ +

PromiseRejectionEvent 接口表示出现在JavaScript {{jsxref("Promise")}}s 被rejecte (拒绝) 时触发的事件。这些事件对遥测(远程测试)和调试特别的有用。

+ +

构造函数

+ +
+
{{domxref("PromiseRejectionEvent.PromiseRejectionEvent", "PromiseRejectionEvent()")}}
+
用给定的参数生成一个 PromiseRejectionEvent 事件。
+
+ +

属性

+ +

也从它的父级{{domxref("Event")}}继承属性。

+ +
+
{{domxref("PromiseRejectionEvent.promise")}} {{readOnlyInline}}
+
被 rejected 的 JavaScript {{jsxref("Promise")}} 。
+
{{domxref("PromiseRejectionEvent.reason")}} {{readOnlyInline}}
+
一个值或 {{jsxref("Object")}} 表明为什么 promise 被 rejected,并传递给{{jsxref("Promise.reject()")}}。
+
+ +

方法

+ +

没有特定的方法; 从它的父级 {{domxref("Event")}}继承方法。

+ +

事件

+ +
+
{{Event("unhandledrejection")}}
+
在一个JavaScript {{jsxref("Promise")}} 被 reject(拒绝) 但是没有 reject 处理函数来处理时触发。
+
{{Event("rejectionhandled")}}
+
在一个JavaScript {{jsxref("Promise")}} 被 reject 时触发,在 reject 后由promise的 reject 处理函数处理。 
+
+ +

例子

+ +
window.onunhandledrejection = function(e) {
+  console.log(e.reason);
+}
+ +

规范

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', 'webappapis.html#promiserejectionevent', 'PromiseRejectionEvent')}}{{ Spec2('HTML WHATWG') }}Initial definition.
+ +

浏览器兼容性

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
功能ChromeFirefox (Gecko)Internet ExplorerOperaSafari
基本支持49{{CompatNo}}[1]{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
功能AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
基本支持{{CompatNo}}{{CompatNo}}[1]{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

[1] 在 Firefox 里,有实现这个接口但是默认是禁用的。要打开它的话,去到about:config 将 dom.promise_rejection_events.enabled 启用为真。

+ +

参见

+ + diff --git a/files/zh-cn/web/api/promiserejectionevent/promise/index.html b/files/zh-cn/web/api/promiserejectionevent/promise/index.html new file mode 100644 index 0000000000..d539826ce8 --- /dev/null +++ b/files/zh-cn/web/api/promiserejectionevent/promise/index.html @@ -0,0 +1,66 @@ +--- +title: PromiseRejectionEvent.promise +slug: Web/API/PromiseRejectionEvent/promise +translation_of: Web/API/PromiseRejectionEvent/promise +--- +
{{APIRef("HTML DOM") }}
+ +

 {{domxref("PromiseRejectionEvent")}}事件对象的promise属性是只读的,表明Promise被reject的原因。您可以通过检查{{domxref("PromiseRejectionEvent.reason")}}来了解Promise为什么被reject。

+ +

Syntax

+ +
promise = PromiseRejectionEvent.promise
+ +

Value

+ +

一个被reject的,并且错误未被处理的{{jsxref("Promise")}} 

+ +

Examples

+ +

下面的例子监听了未被处理的promise,如果{{domxref("PromiseRejectionEvent.reason", "reason")}} 是一个对象,并且其code属性包含了一段文本“Module not read.”,一个空闲的回调函数被声明,当任务执行错误时会进行重试

+ +

{{domxref("event.preventDefault()")}} 用来表明该promise已被处理

+ +
window.onunhandledrejection = function(event) {
+  if (event.reason.code && event.reason.code == "Module not ready") {
+    window.requestIdleCallback(function(deadline) {
+      loadModule(event.reason.moduleName)
+        .then(performStartup);
+    });
+    event.preventDefault();
+  }
+}
+ +

Specifications

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', 'webappapis.html#dom-promiserejectionevent-promise', 'PromiseRejectionEvent.promise')}}{{ Spec2('HTML WHATWG') }}Initial definition.
+ +

浏览器兼容性

+ + + +

{{Compat("api.PromiseRejectionEvent.promise")}}

+ +

See also

+ + diff --git a/files/zh-cn/web/api/promiserejectionevent/promiserejectionevent/index.html b/files/zh-cn/web/api/promiserejectionevent/promiserejectionevent/index.html new file mode 100644 index 0000000000..6d6e1e3d92 --- /dev/null +++ b/files/zh-cn/web/api/promiserejectionevent/promiserejectionevent/index.html @@ -0,0 +1,114 @@ +--- +title: PromiseRejectionEvent.PromiseRejectionEvent() +slug: Web/API/PromiseRejectionEvent/PromiseRejectionEvent +translation_of: Web/API/PromiseRejectionEvent/PromiseRejectionEvent +--- +
{{APIRef("HTML DOM")}}
+ +

PromiseRejectionEvent() 构造器返回一个新创建的 {{domxref("PromiseRejectionEvent")}},代表一个JavaScript {{jsxref("Promise")}}被rejected时触发的事件。

+ +

语法

+ +
new PromiseRejectionEvent(type, {
+  promise: somePromise,
+  reason : someValue
+});
+
+ +

参数

+ +

PromiseRejectionEvent()构造函数继承了{{domxref("Event.Event", "Event()")}}的参数。

+ +
+
type
+
一个代表PromiseRejectionEvent的类型名称的字符串。这是区分大小写的同时必须是{{event("rejectionhandled", '"rejectionhandled"')}} 或者 {{event("unhandledrejection", '"unhandledrejection"')}} 其中之一。
+
promise
+
代表被 rejected 的{{jsxref("Promise")}}。
+
reason
+
代表 promise 被 rejected的原因的值或者对象{{jsxref("Object")}} 。
+
+ +

例子

+ +
var myRejectionEvent = new PromiseRejectionEvent('unhandledrejection', {
+  promise : myPromise,
+  reason : 'My house is on fire'
+});
+ +

规范

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', 'webappapis.html#promiserejectionevent', 'PromiseRejectionEvent()')}}{{Spec2('HTML WHATWG')}}Initial definition.
+ +

浏览器兼容性

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support49{{CompatNo}}[1]{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}[1]{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

[1] 在Firefox里,实现了这个构造函数但是默认是禁用的。为了打开它,需去到 about:config 然后将 dom.promise_rejection_events.enabled 设置启用为真。

+ +

另请参阅

+ + -- cgit v1.2.3-54-g00ecf