• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2* Copyright (C) 2025 HiHope Open Source Organization.
3* Licensed under the Apache License, Version 2.0 (the "License");
4* you may not use this file except in compliance with the License.
5* You may obtain a copy of the License at
6*
7*   http://www.apache.org/licenses/LICENSE-2.0
8*
9* Unless required by applicable law or agreed to in writing, software
10* distributed under the License is distributed on an "AS IS" BASIS,
11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12* See the License for the specific language governing permissions and
13* limitations under the License.
14*/
15export async function sleep(time) {
16    return new Promise((resolve) => {
17        setTimeout(() => {
18            resolve(1);
19        }, time);
20    });
21};
22
23export const JSpromiseTest1 = new Promise((resolve) => {
24    setTimeout(() => resolve('66'), 100);
25});
26
27export const JSpromiseTest2 = new Promise((resolve) => {
28    setTimeout(() => resolve(66), 100);
29});
30
31export const JSpromiseTest3 = new Promise((resolve) => {
32    setTimeout(() => resolve(true), 100);
33});
34
35export const JSpromiseTest4 = new Promise((resolve) => {
36    setTimeout(() => resolve(66n), 100);
37});
38
39
40export const JSpromiseTest5 = new Promise((resolve) => {
41    setTimeout(() => resolve({
42        age: 30
43    }), 100);
44});
45
46export const JSpromiseTest6 = new Promise((resolve) => {
47    setTimeout(() => resolve({
48        age: 30
49    }), 100);
50});
51
52export const JSpromiseTest7 = new Promise((resolve) => {
53    setTimeout(() => resolve([65, 66, 67]), 100);
54});
55
56export const JSpromiseTest8 = new Promise((resolve) => {
57    setTimeout(() => resolve(() => 'Hello World!'), 100);
58});
59
60export const JSpromiseTest9 = new Promise((resolve) => {
61    setTimeout(() => resolve(), 100);
62});
63
64export const JSpromiseTest10 = new Promise((resolve) => {
65    setTimeout(() => resolve(null), 100);
66});
67
68export const JSpromiseTest11 = new Promise((resolve) => {
69    setTimeout(() => resolve(undefined), 100);
70});
71
72export const JSpromiseTest12 = new Promise((_, reject) => {
73    setTimeout(() => reject(new Error('For test')), 100);
74});
75
76
77export class Person {
78    name = '';
79    surname = '';
80
81    constructor(n, sn) {
82        this.name = n;
83        this.surname = sn;
84    }
85
86    fullName() {
87        return this.name + ' ' + this.surname;
88    }
89};
90
91export const JSpromiseTest13 = new Promise((resolve) => {
92    setTimeout(() => resolve(
93        new Person('John', 'Smith')
94    ), 100);
95});
96
97
98class For14JSpromiseTest {
99    name = '';
100    age = 0;
101
102    constructor(n, age) {
103        this.name = n;
104        this.age = age;
105    }
106
107    fullName() {
108        return this.name;
109    }
110
111    getAge() {
112        return this.age;
113    }
114};
115
116export const JSpromiseTest14 = new Promise((resolve) => {
117    const p = new For14JSpromiseTest('John', 66);
118    setTimeout(() => resolve(
119        p.getAge()
120    ), 100);
121});
122
123export const JSpromiseTest15 = new Promise((resolve) => {
124    setTimeout(() => resolve(new Error('For test')), 100);
125});
126
127export const JSpromiseTest16 = new Promise((resolve) => {
128    setTimeout(() => {resolve(66)}, 100);
129});
130
131export function JSpromiseTest17() {
132    return new Promise((_, reject) => {
133        setTimeout(() => {reject(new Error('For test'))}, 100);
134    });
135};
136
137export function JSpromiseTest18() {
138    return new Promise((_, reject) => {
139        const errorMessage = 'For test';
140        setTimeout(() => {reject(new Error(errorMessage))}, 100);
141    });
142};
143
144export function JSpromiseTest19() {
145    return new Promise((_, reject) => {
146        setTimeout(() => {reject(new Error('For test'))}, 100);
147    });
148};
149
150
151export function JSpromiseTest23(inputText) {
152    const promise1 = new Promise(resolve => setTimeout(() => resolve(inputText), 100));
153    const promise2 = new Promise(resolve => setTimeout(() => resolve(inputText), 100));
154    const promise3 = new Promise((_, reject) => setTimeout(() => {reject(new Error('For test'))}, 100));
155
156    return Promise.all([promise1, promise2, promise3])
157        .finally(() => {
158            console.log('end');
159        });
160};
161
162export function JSpromiseTest24(num) {
163    const promise1 = new Promise(resolve => setTimeout(() => resolve(num * 2), 100));
164    const promise2 = new Promise(resolve => setTimeout(() => resolve(num * 3), 100));
165    const promise3 = new Promise((resolve, reject) => setTimeout(() => {reject(new Error('For test'))}, 100));
166
167    return Promise.race([promise1, promise2, promise3]);
168};
169
170export function JSpromiseTest25(num) {
171    const promise1 = new Promise(resolve => setTimeout(() => resolve(num * 2), 100));
172    const promise2 = new Promise(resolve => setTimeout(() => resolve(num * 3), 100));
173    const promise3 = new Promise((resolve, reject) => setTimeout(() => {reject(new Error('For test'))}, 100));
174
175    return Promise.allSettled([promise1, promise2, promise3]);
176};
177
178export function JSpromiseTest26(num) {
179    const promise1 = new Promise(resolve => setTimeout(() => resolve(num * 2), 100));
180    const promise2 = new Promise(resolve => setTimeout(() => resolve(num * 3), 100));
181    const promise3 = new Promise((resolve, reject) => setTimeout(() => {reject(new Error('For test'))}, 100));
182
183    return Promise.any([promise1, promise2, promise3]);
184};
185
186export const JSpromiseTest27 = new Promise((resolve) => {
187    resolve(1);
188})
189    .then(value => value + 1)
190    .then(value => value + 2)
191    .then(value => value + 3)
192    .then(value => value + 4)
193    .then(value => value + 5);
194
195export const JSpromiseTest28 = new Promise((resolve) => {
196    resolve(1);
197})
198    .then(value => value + 1)
199    .then(value => value + 2)
200    .then(value => value + 3)
201    .catch(error => {
202        console.error('First catch:', error);
203        return 0;
204    })
205    .catch(error => {
206        console.error('Second catch:', error);
207        return -1;
208    });
209
210export const JSpromiseTest29 = new Promise((resolve) => {
211    resolve(1);
212})
213    .then(value => value + 1)
214    .then(value => value + 2)
215    .catch(error => {
216        console.log('First catch:', error);
217        return 0;
218    })
219    .catch(error => {
220        console.log('Second catch:', error);
221        return -1;
222    })
223    .finally(() => {
224        console.log('end');
225    });