HarmonyOS通过async与await同异步转换 解决异步回调地狱
然后 等它发挥了用它返回的数据第一条0 下标的id 去作为路径参数请求 “http://localhost/books/”+result.data[0].id,然后 我们先请求http://localhost/books这里 我们加了 await 请求会一直等它返回不会提前执行。但是 Promise这种写法可读性其实没有那么优秀没有搞定 Promisereturn规则的人甚至都看不懂。我们用Pro
·
我在 HarmonyOS 发送http网络请求 中讲述了 HTTP请求的基本方式
然后 就带出了 回调地狱的问题
然后 上文 HarmonyOS 通过Promise 解决异步回调地狱问题 我们用Promise的解决方案 搞定了 这个问题
但是 Promise 这种写法 可读性其实没有那么优秀 没有搞定 Promise return规则的人甚至都看不懂
我们可以用另一个ES6知识点 async与await同异步转换
我们代码可以这样写
import http from '@ohos.net.http'
@Entry
@Component
struct Index {
async aboutToAppear() {
let httpReq = http.createHttp();
let PromiseT = await httpReq.request(
"http://localhost/books",
{
method: http.RequestMethod.GET
}
)
let result = JSON.parse(`${PromiseT.result}`);
let httpReq1 = http.createHttp();
let data = await httpReq1.request(
"http://localhost/books/"+result.data[0].id,
{
method: http.RequestMethod.GET
}
)
console.log(JSON.stringify(data.result));
}
build() {
Column({space: 30}) {
}
.width('100%')
.height('100%')
}
}
先给我们的 aboutToAppear 修饰一个 async
这样才能在它里面进行 await
然后 我们先请求 http://localhost/books 这里 我们加了 await 请求会一直等它返回 不会提前执行
然后 等它发挥了 用它返回的数据 第一条 0 下标的id 去作为路径参数 请求 “http://localhost/books/”+result.data[0].id,
运行结果如下
也是没有任何问题
更多推荐
已为社区贡献9条内容
所有评论(0)