跳到主要内容

@performance/hp-arkui-use-taskpool-for-web-request

建议网络资源的请求和返回使用taskpool线程池异步处理。

应用内点击完成时延场景下,建议优先修改。

规则配置

// code-linter.json5
{
"rules": {
"@performance/hp-arkui-use-taskpool-for-web-request": "warn",
}
}

选项

该规则无需配置额外选项。

正例

import { http } from '@kit.NetworkKit';
import { BusinessError } from '@ohos.base';
import taskpool from '@ohos.taskpool';

@Concurrent
function processRespTask(err: BusinessError, data: http.HttpResponse) {
if (!err) {
console.info('Result:' + data.result);
console.info('code:' + data.responseCode);
console.info('type:' + JSON.stringify(data.resultType));
console.info('header:' + JSON.stringify(data.header));
console.info('cookies:' + data.cookies);
} else {
console.info('error:' + JSON.stringify(err));
}
}

let httpRequest = http.createHttp();
httpRequest.request("EXAMPLE_URL", async (err: Error, data: http.HttpResponse) => {
let task = new taskpool.Task(processRespTask, data);
await taskpool.execute(task);
});

反例

import { http } from '@kit.NetworkKit';

let httpRequest = http.createHttp();
httpRequest.request("EXAMPLE_URL", (err: Error, data: http.HttpResponse) => {
if (!err) {
console.info('Result:' + data.result);
console.info('code:' + data.responseCode);
console.info('type:' + JSON.stringify(data.resultType));
console.info('header:' + JSON.stringify(data.header));
console.info('cookies:' + data.cookies);
} else {
console.info('error:' + JSON.stringify(err));
}
});

规则集

plugin:@performance/all

Code Linter代码检查规则的配置指导请参考Code Linter代码检查