在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙OS開發實例:【ArkTS類庫異步并發簡述Promise】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-02 18:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Promise和async/await提供異步并發能力,是標準的JS異步語法。異步代碼會被掛起并在之后繼續執行,同一時間只有一段代碼執行,適用于單次I/O任務的場景開發,例如一次網絡請求、一次文件讀寫等操作。異步語法是一種編程語言的特性,允許程序在執行某些操作時不必等待其完成,而是可以繼續執行其他操作。

Promise是一種用于處理異步操作的對象,可以將異步操作轉換為類似于同步操作的風格,以方便代碼編寫和維護。Promise提供了一個狀態機制來管理異步操作的不同階段,并提供了一些方法來注冊回調函數以處理異步操作的成功或失敗的結果。

Promise有三種狀態:pending(進行中)、fulfilled(已完成)和rejected(已拒絕)。Promise對象創建后處于pending狀態,并在異步操作完成后轉換為fulfilled或rejected狀態。

最基本的用法是通過構造函數實例化一個Promise對象,同時傳入一個帶有兩個參數的函數,通常稱為executor函數。executor函數接收兩個參數:resolve和reject,分別表示異步操作成功和失敗時的回調函數。例如,以下代碼創建了一個Promise對象并模擬了一個異步操作

搜狗高速瀏覽器截圖20240326151547.png

setTimeout(() = > {
    const randomNumber = Math.random();
    if (randomNumber > 0.5) {
      resolve(randomNumber);
    } else {
      reject(new Error('Random number is too small'));
    }
  }, 1000);
});
});

上述代碼中,setTimeout函數模擬了一個異步操作,并在1秒鐘后隨機生成一個數字。如果隨機數大于0.5,則執行resolve回調函數并將隨機數作為參數傳遞;否則執行reject回調函數并傳遞一個錯誤對象作為參數。

Promise對象創建后,可以使用then方法和catch方法指定fulfilled狀態和rejected狀態的回調函數。then方法可接受兩個參數,一個處理fulfilled狀態的函數,另一個處理rejected狀態的函數。只傳一個參數則表示狀態改變就執行,不區分狀態結果。使用catch方法注冊一個回調函數,用于處理“失敗”的結果,即捕獲Promise的狀態改變為rejected狀態或操作失敗拋出的異常。例如:

promise.then(result = > {
  console.info(`Random number is ${result}`);
}).catch(error = > {
  console.error(error.message);
});

上述代碼中,then方法的回調函數接收Promise對象的成功結果作為參數,并將其輸出到控制臺上。如果Promise對象進入rejected狀態,則catch方法的回調函數接收錯誤對象作為參數,并將其輸出到控制臺上。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    60

    文章

    2613

    瀏覽量

    43997
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    191

    瀏覽量

    4974
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ArkTS語言基礎-解析

    ArkTS語言基礎是HarmonyOS系統上為應用開發者提供的常用基礎能力,主要包含能力如下圖所示。 圖1 ArkTS語言基礎
    發表于 02-20 16:44

    鴻蒙原生應用開發-ArkTS語言基礎單次I/O任務開發

    Promise和async/await提供異步并發能力,適用于單次I/O任務的場景開發,本文以使用異步進行單次文件寫入為例來提供指導。 實現
    發表于 03-04 14:07

    鴻蒙原生應用開發-ArkTS語言基礎概述

    ArkTS語言基礎是HarmonyOS系統上為應用開發者提供的常用基礎能力,主要包含能力如下圖所示。 1.提供異步
    發表于 03-05 15:42

    鴻蒙原生應用開發-ArkTS語言基礎異步并發簡述async/await

    async/await是一種用于處理異步操作的Promise語法糖,使得編寫異步代碼變得更加簡單和易讀。通過使用async關鍵字聲明一個函數為異步函數,并使用await關鍵字等待
    發表于 03-06 14:44

    鴻蒙原生應用開發-ArkTS語言基礎異步并發簡述Promise

    Promise和async/await提供異步并發能力,是標準的JS異步語法。異步代碼會被掛起并在之后繼續執行,同一時間只有一段代碼執行,適
    發表于 03-07 15:46

    鴻蒙原生應用開發-ArkTS語言基礎多線程@Concurrent裝飾器校驗并發函數

    在使用TaskPool時,執行的并發函數需要使用該裝飾器修飾,否則無法通過相關校驗。從API version 9開始,該裝飾器支持在ArkTS卡片中使用。 裝飾器說明 裝飾器使用示例 import
    發表于 03-18 10:30

    鴻蒙5開發寶藏案例分享---應用并發設計

    ?** 鴻蒙并發編程實戰指南:解鎖ArkTS多線程黑科技** 嘿,開發者朋友們! 今天給大家扒一扒鴻蒙官方文檔里藏著的
    發表于 06-12 16:19

    什么是ArkTS

    基礎能力示意圖 提供異步并發和多線程并發的能力。 支持Promise和async/aw
    發表于 06-17 06:24

    HarmonyOS如何使用異步并發能力進行開發

    策略進行優化和開發ArkTS支持異步并發和多線程并發。 ● Promise和async/aw
    發表于 09-22 17:35

    HarmonyOS語言基礎開發指南上線啦!

    基礎開發指南為HarmonyOS應用開發者提供了常用的基礎能力: ○ 提供異步并發和多線程
    發表于 10-18 16:36

    鴻蒙 OS 應用開發初體驗

    的 IDE、鴻蒙生態的開發語言 ArkTS,通過模擬器運行起來了鴻蒙 OS 版 HelloWorld。對于已經有移動
    發表于 11-02 19:38

    鴻蒙OS開發實例:【ArkTS多線程I/O密集型任務開發

    使用異步并發可以解決單次I/O任務阻塞的問題,但是如果遇到I/O密集型任務,同樣會阻塞線程中其它任務的執行,這時需要使用多線程并發能力來進行解決。 I/O密集型任務的性能重點通常不在于CPU
    的頭像 發表于 04-01 16:32 ?883次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b>多線程I/O密集型任務<b class='flag-5'>開發</b>】

    鴻蒙OS開發實例:【ArkTS多線程@Concurrent裝飾器校驗并發函數】

    在使用TaskPool時,執行的并發函數需要使用該裝飾器修飾,否則無法通過相關校驗。從API version 9開始,該裝飾器支持在ArkTS卡片中使用。
    的頭像 發表于 04-02 14:45 ?1223次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b>多線程@Concurrent裝飾器校驗<b class='flag-5'>并發</b>函數】

    鴻蒙OS開發實例:【ArkTS異步并發async/await】

    async/await是一種用于處理異步操作的Promise語法糖,使得編寫異步代碼變得更加簡單和易讀。通過使用async關鍵字聲明一個函數為異步函數,并使用await關鍵字等待
    的頭像 發表于 04-02 20:57 ?1479次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b><b class='flag-5'>異步</b><b class='flag-5'>并發</b>async/await】

    鴻蒙OS開發實例:【ArkTS單次I/O任務開發

    Promise和async/await提供異步并發能力,適用于單次I/O任務的場景開發,本文以使用異步進行單次文件寫入為例來提供指導。
    的頭像 發表于 04-02 21:03 ?544次閱讀
    <b class='flag-5'>鴻蒙</b>原<b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【<b class='flag-5'>ArkTS</b><b class='flag-5'>類</b><b class='flag-5'>庫</b>單次I/O任務<b class='flag-5'>開發</b>】
    主站蜘蛛池模板: www.亚洲5555.com| 视频h在线 | 天天躁日日躁狠狠躁中文字幕老牛 | 色老头影视 | 日本三区四区免费高清不卡 | 天天更新影院 | 五月婷婷啪啪 | 欧美特级黄 | 激情久久久久久久久久久 | 天天爽夜夜爽人人爽一区二区 | 四虎一影院区永久精品 | 亚洲免费在线看 | 中文字幕乱码人成乱码在线视频 | 91九色成人 | 天天操天天干天天爽 | 亚洲天堂bt | china国语对白刺激videos chinese国产videoxx实拍 | 欧美成人免费全部观看天天性色 | 能看毛片的网址 | 色多多免费视频观看区一区 | tube亚洲高清老少配 | 67pao强力打造高清免费 | 激情五月婷婷久久 | 超级乱淫片67194免费看 | 中文字幕在线不卡 | 午夜看看| a黄网站| 成年人www | 久久97精品久久久久久久看片 | 欧美爽爽| 国产亚洲美女精品久久久2020 | 日本极度另类网站 | 色吧色吧色吧网 | 欧美精品二区 | 91视频毛片 | 黄色网毛片 | 色综合中文网 | 视频在线观看一区 | 国产成人精品本亚洲 | 久久婷婷午色综合夜啪 | 夜夜爽影院 |