2
3export const getHTMLImageElement = (src: string) => new Promise<HTMLImageElement>((resolve, reject) => {
4 let timer = setTimeout(() => {
5 reject(`Image load timed out in ${TIMEOUT}ms. src: ${src}`); 6 }, TIMEOUT);
7 const img = new Image();
8 img.crossOrigin = 'anonymous';
12 if (typeof(reader.result) === 'string') {
13 resolve(reader.result);
14 } else {
15 reject('No valid result could be found');16 }
17 };
18 reader.readAsDataURL(file);
7 const reader = new FileReader()
8
9 reader.onabort = () => reject('File reading was aborted');
10 reader.onerror = () => reject('File reading has failed');11 reader.onload = () => {
12 if (typeof(reader.result) === 'string') {
13 resolve(reader.result);
6const readFile = (file: File): Promise<string> => new Promise((resolve, reject) => {
7 const reader = new FileReader()
8
9 reader.onabort = () => reject('File reading was aborted');10 reader.onerror = () => reject('File reading has failed');
11 reader.onload = () => {
12 if (typeof(reader.result) === 'string') {
It is considered good practice to only pass instances of the built-in Error
object to the reject()
function for user-defined errors in Promises
. Error
objects automatically store a stack trace, which can be used to debug an error by determining where it came from. If a Promise
is rejected with a non-Error
value, it can be difficult to determine where the rejection occurred.
It helps us to ensure that Promises are rejected with Error
objects.
Promise.reject("something bad happened");
Promise.reject(5);
Promise.reject();
new Promise(function(resolve, reject) {
reject("something bad happened");
});
new Promise(function(resolve, reject) {
reject();
});
Promise.reject(new Error("something bad happened"));
Promise.reject(new TypeError("something bad happened"));
new Promise(function(resolve, reject) {
reject(new Error("something bad happened"));
});
var foo = getUnknownValue();
Promise.reject(foo);