mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-29 21:25:35 +00:00
9fe74dfec0
This is implemented by creating a Promise object internally and forwarding the .then() call to it. Any further callbacks passed to future .then() calls will be added as callbacks on the same internal promise object. We also take care of resolving or rejecting the promise if the success/error event of the DOMRequest object has been fired before .then() is called.
28 lines
1.0 KiB
Plaintext
28 lines
1.0 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
enum DOMRequestReadyState { "pending", "done" };
|
|
|
|
[NoInterfaceObject]
|
|
interface DOMRequestShared {
|
|
readonly attribute DOMRequestReadyState readyState;
|
|
|
|
readonly attribute any result;
|
|
readonly attribute DOMError? error;
|
|
|
|
attribute EventHandler onsuccess;
|
|
attribute EventHandler onerror;
|
|
};
|
|
|
|
interface DOMRequest : EventTarget {
|
|
// The [TreatNonCallableAsNull] annotation is required since then() should do
|
|
// nothing instead of throwing errors when non-callable arguments are passed.
|
|
[NewObject, Throws]
|
|
Promise<any> then([TreatNonCallableAsNull] optional AnyCallback? fulfillCallback = null,
|
|
[TreatNonCallableAsNull] optional AnyCallback? rejectCallback = null);
|
|
};
|
|
|
|
DOMRequest implements DOMRequestShared;
|