我在 HarmonyOS 發(fā)送http網(wǎng)絡(luò)請求 中講述了 HTTP請求的基本方式
然后 就帶出了 回調(diào)地獄的問題
然后 上文 HarmonyOS 通過Promise 解決異步回調(diào)地獄問題 我們用Promise的解決方案 搞定了 這個問題
但是 Promise 這種寫法 可讀性其實沒有那么優(yōu)秀 沒有搞定 Promise return規(guī)則的人甚至都看不懂
我們可以用另一個ES6知識點 async與await同異步轉(zhuǎn)換
我們代碼可以這樣寫文章來源:http://www.zghlxwxcb.cn/news/detail-821579.html
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 請求會一直等它返回 不會提前執(zhí)行
然后 等它發(fā)揮了 用它返回的數(shù)據(jù) 第一條 0 下標的id 去作為路徑參數(shù) 請求 “http://localhost/books/”+result.data[0].id,
運行結(jié)果如下
也是沒有任何問題文章來源地址http://www.zghlxwxcb.cn/news/detail-821579.html
到了這里,關(guān)于HarmonyOS通過async與await同異步轉(zhuǎn)換 解決異步回調(diào)地獄的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!