• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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