@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代码检查。