codecamp

鸿蒙OS 接口通用规则

同步

同步方法调用后必须等到方法结果返回后才能继续后续的行为,返回值可以是任意类型。

  • 示例

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

异步

异步方法调用整个过程不会阻碍调用者的工作。业务执行完成后会调用开发者提供的回调函数。

  • 异步接口支持的回调函数
回调函数 参数名 类型 返回值 说明
success data any 可选,返回值可以是任意类型,详见接口使用文档。 在执行成功时触发。
fail data any 错误信息内容,一般是字符串,也可能是其他类型,详见接口使用文档。 在执行失败时触发。
code number 错误代码,详见通用错误码
cancel data any 一般无内容,详见接口使用文档。 在用户取消时触发。部分用户交互场景可能有对该回调接口的支持。
complete - - - 在执行完成时触发。

说明

  • success、fail、cancel和complete四个回调函数是否支持参考具体接口描述

  • success、fail和cancel三个回调函数的触发是互斥的,即会且只会在一个回调函数中触发,触发任意一个都会再次调用complete回调。

  • 使用await异步调用方式,需在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);
    },
  });

订阅

订阅接口不会立即返回结果,开发者要在参数中设置相应的回调函数;该回调函数会在完成时或者事件变化时进行回调;可以执行多次。

  • 订阅接口支持以下回调函数
回调函数 参数名 类型 返回值 说明
success data any 返回值可以是任意类型,详见接口使用文档。 接口调用成功或事件变更时触发,可能会触发多次。
fail data any 错误信息内容,一般是字符串,也可能是其他类型,详见接口使用文档。 在执行失败时触发。一旦触发该回调函数,success不会再次被调用,接口调用结束。
code number 错误代码,详见通用错误码

  • 以地理位置接口为例

  geolocation.subscribe({
    success: function(data) {
      console.log('get location. latitude:' + data.latitude);
    },
    fail: function(data, code) {
      console.log('fail to get location. code:' + code);
    },
  });
鸿蒙OS JS FA调用Java PA机制概述
鸿蒙OS 轻量级智能穿戴开发概述
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }