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 });