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

2020-09-17 16:33 更新

同步

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

  • 示例

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

異步

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

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

說明

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

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

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

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

// 注入regeneratorRuntime

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

  • 示例

  1. battery.getStatus({
  2. success: function(data) {
  3. console.log('success get battery level:' + data.level);
  4. },
  5. fail: function(data, code) {
  6. console.log('fail to get battery level code:' + code);
  7. },
  8. });

訂閱

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

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

  • 以地理位置接口為例

  1. geolocation.subscribe({
  2. success: function(data) {
  3. console.log('get location. latitude:' + data.latitude);
  4. },
  5. fail: function(data, code) {
  6. console.log('fail to get location. code:' + code);
  7. },
  8. });
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號