鴻蒙OS 接口通用規(guī)則

2020-09-17 16:33 更新

同步

同步方法調(diào)用后必須等到方法結(jié)果返回后才能繼續(xù)后續(xù)的行為,返回值可以是任意類型。

  • 示例

  var info = app.getInfo();
  console.log(JSON.stringify(info));

異步

異步方法調(diào)用整個(gè)過程不會(huì)阻礙調(diào)用者的工作。業(yè)務(wù)執(zhí)行完成后會(huì)調(diào)用開發(fā)者提供的回調(diào)函數(shù)。

  • 異步接口支持的回調(diào)函數(shù)
回調(diào)函數(shù) 參數(shù)名 類型 返回值 說明
success data any 可選,返回值可以是任意類型,詳見接口使用文檔。 在執(zhí)行成功時(shí)觸發(fā)。
fail data any 錯(cuò)誤信息內(nèi)容,一般是字符串,也可能是其他類型,詳見接口使用文檔。 在執(zhí)行失敗時(shí)觸發(fā)。
code number 錯(cuò)誤代碼,詳見通用錯(cuò)誤碼。
cancel data any 一般無內(nèi)容,詳見接口使用文檔。 在用戶取消時(shí)觸發(fā)。部分用戶交互場(chǎng)景可能有對(duì)該回調(diào)接口的支持。
complete - - - 在執(zhí)行完成時(shí)觸發(fā)。

說明

  • success、fail、cancel和complete四個(gè)回調(diào)函數(shù)是否支持參考具體接口描述

  • success、fail和cancel三個(gè)回調(diào)函數(shù)的觸發(fā)是互斥的,即會(huì)且只會(huì)在一個(gè)回調(diào)函數(shù)中觸發(fā),觸發(fā)任意一個(gè)都會(huì)再次調(diào)用complete回調(diào)。

  • 使用await異步調(diào)用方式,需在JS文件開頭引入@babel/runtime/regenerator,示例如下:

const globalRef = Object.getPrototypeOf(global) || global

// 注入regeneratorRuntime

globalRef.regeneratorRuntime = require('@babel/runtime/regenerator')

  • 示例

  battery.getStatus({
    success: function(data) {
      console.log('success get battery level:' + data.level);
    },
    fail: function(data, code) {
      console.log('fail to get battery level code:' + code);
    },
  });

訂閱

訂閱接口不會(huì)立即返回結(jié)果,開發(fā)者要在參數(shù)中設(shè)置相應(yīng)的回調(diào)函數(shù);該回調(diào)函數(shù)會(huì)在完成時(shí)或者事件變化時(shí)進(jìn)行回調(diào);可以執(zhí)行多次。

  • 訂閱接口支持以下回調(diào)函數(shù)
回調(diào)函數(shù) 參數(shù)名 類型 返回值 說明
success data any 返回值可以是任意類型,詳見接口使用文檔。 接口調(diào)用成功或事件變更時(shí)觸發(fā),可能會(huì)觸發(fā)多次。
fail data any 錯(cuò)誤信息內(nèi)容,一般是字符串,也可能是其他類型,詳見接口使用文檔。 在執(zhí)行失敗時(shí)觸發(fā)。一旦觸發(fā)該回調(diào)函數(shù),success不會(huì)再次被調(diào)用,接口調(diào)用結(jié)束。
code number 錯(cuò)誤代碼,詳見通用錯(cuò)誤碼

  • 以地理位置接口為例

  geolocation.subscribe({
    success: function(data) {
      console.log('get location. latitude:' + data.latitude);
    },
    fail: function(data, code) {
      console.log('fail to get location. code:' + code);
    },
  });
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)