1# 验证示例代码同源--异常场景2 2 3## ID无嵌套,代码不一致 4 5代码不一致(缩进不一致,resolve关键字行缩进不一致) 6```ts 7const promise: Promise<number> = new Promise((resolve: Function, reject: Function) => { 8 setTimeout(() => { 9 const randomNumber: number = Math.random(); 10 if (randomNumber > 0.5) { 11 resolve(randomNumber); 12 } else { 13 reject(new Error('Random number is too small')); 14 } 15 }, 1000); 16}) 17``` 18<!--@[promise_async_operation](https://gitcode.com/openharmony/applications_app_samples/blob/master/code/DocsSample/ArkTs/ArkTsConcurrent/AsyncConcurrencyOverview/entry/src/main/ets/pages/Index.ets)--> 19 20## 引用部分代码(Exclude字段) 21 22### 注释不一致(docs:多行注释 vs Sample:单行注释),代码内容一致 23 24```ts 25import { taskpool } from '@kit.ArkTS'; 26 27// 跨线程并发任务 28@Concurrent 29async function produce(): Promise<number> { 30 // 添加生产相关逻辑 31 console.info('producing...'); 32 return Math.random(); 33} 34 35class Consumer { 36 public consume(value: Object) { 37 // 添加消费相关逻辑 38 console.info('consuming value: ' + value); 39 } 40} 41 42@Entry 43@Component 44struct Index { 45 @State message: string = 'Hello World'; 46 47 build() { 48 Row() { 49 Column() { 50 Text(this.message) 51 .fontSize(50) 52 .fontWeight(FontWeight.Bold) 53 Button() { 54 Text('start') 55 }.onClick(() => { 56 let produceTask: taskpool.Task = new taskpool.Task(produce); 57 let consumer: Consumer = new Consumer(); 58 for (let index: number = 0; index < 10; index++) { 59 /* 60 * 执行生产异步并发任务 61 */ 62 taskpool.execute(produceTask).then((res: Object) => { 63 consumer.consume(res); 64 }).catch((e: Error) => { 65 console.error(e.message); 66 }) 67 } 68 }) 69 .width('20%') 70 .height('20%') 71 } 72 .width('100%') 73 } 74 .height('100%') 75 } 76} 77``` 78<!--@[actor_model](https://gitcode.com/openharmony/applications_app_samples/blob/master/code/DocsSample/ArkTs/ArkTsConcurrent/MultithreadedConcurrency/MultiThreadConcurrencyOverview/entry/src/main/ets/pages/Index.ets)--> 79 80 81## 文档代码块中,id重复(但是引用的内容一致),验证扫描结果 82 83不应该报错 84 85```ts 86const promise: Promise<number> = new Promise((resolve: Function, reject: Function) => { 87 setTimeout(() => { 88 const randomNumber: number = Math.random(); 89 if (randomNumber > 0.5) { 90 resolve(randomNumber); 91 } else { 92 reject(new Error('Random number is too small')); 93 } 94 }, 1000); 95}) 96``` 97<!--@[promise_async_operation](https://gitcode.com/openharmony/applications_app_samples/blob/master/code/DocsSample/ArkTs/ArkTsConcurrent/AsyncConcurrencyOverview/entry/src/main/ets/pages/Index.ets)--> 98 99 100``` 101async function myAsyncFunction(): Promise<string> { 102 const result: string = await new Promise((resolve: Function) => { 103 setTimeout(() => { 104 resolve('Hello, world!'); 105 }, 3000); 106 }); 107 console.info(result); // 输出: Hello, world! 108 return result; 109} 110 111@Entry 112@Component 113struct PromiseAsyncAwait { 114 @State message: string = 'Hello World'; 115 116 build() { 117 Row() { 118 Column() { 119 Text(this.message) 120 .fontSize(50) 121 .fontWeight(FontWeight.Bold) 122 .onClick(async () => { 123 let res = await myAsyncFunction(); 124 console.info('res is: ' + res); 125 }) 126 } 127 .width('100%') 128 } 129 .height('100%') 130 } 131} 132``` 133<!--@[async_await_sync_operation](https://gitcode.com/openharmony/applications_app_samples/blob/master/code/DocsSample/ArkTs/ArkTsConcurrent/AsyncConcurrencyOverview/entry/src/main/ets/pages/Index.ets)--> 134