网络管理-async、await

2024-02-04  本文已影响0人  家乡的蝈蝈

1.1、应用权限

  ATM (AccessTokenManager) 是HarmonyOS上基于AccessToken构建的统一的应用权限管理能力
应用权限保护的对象可以分为数据和功能:

根据授权方式的不同,权限类型可分为system_grant(系统授权)和user_grant(用户授权)

{
  "module" : {
    // ...
    "requestPermissions":[
      {
        "name" : "ohos.permission.INTERNET"
      }
    ]
  }
}
{
  "module" : {
    // ...
    "requestPermissions":[
      {
        "name" : "ohos.permission.ANSWER_CALL" //允许应用接听来电
      }
    ]
  }
}

1.2、HTTP请求

使用 @ohos.net.http 模块发请求

// 申请网络权限
"requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
    ]
import http from '@ohos.net.http'
import request from '@ohos.request'
@Entry
@Component
struct HttpCase {
  aboutToAppear() { // 页面初始化之后会执行
    this.getData()
  }
  async getData() {
    // 第一种取promise结果的方法
    try {
      const req = http.createHttp()
      // await会强制等待后面的promise进行resolve,只有执行成功才会走下一行代码,要求父级函数必须标记为async
      const res = await req.request("https://zhoushugang.gitee.io/fe2022/takeaway.json")
      // 执行成功的代码  async await让我们用同步的方式写异步, 必须配套使用,要求父级函数必须标记为async
      // async标记后面的函数是一个异步函数,不会阻塞主线程,getData不会阻塞主线程的执行
      AlertDialog.show({message:res.result as string })
    } catch(e) { // 处理失败的代码
    }
    // 第二种取promise结果的方法
    // request返回promise,通过then拿到结果
    // const req = http.createHttp()
    // req.request("https://zhoushugang.gitee.io/fe2022/takeaway.json")
    //   .then((result) => {
    //     AlertDialog.show({message:result.result as string }) // as string代表类型断言
    //   })
    //   .catch((e)=>{
    //   })
  }
  build() {
    Row() {
      Column() {
      }
      .width('100%')
    }
    .height('100%')
  }
}
上一篇 下一篇

猜你喜欢

热点阅读