W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
小程序開發(fā)框架提供豐富的微信原生 API,可以方便的調(diào)起微信提供的能力,如獲取用戶信息,本地存儲(chǔ),支付功能等。詳細(xì)介紹請(qǐng)參考 API 文檔。
通常,在小程序 API 有以下幾種類型:
我們約定,以 on 開頭的 API 用來監(jiān)聽某個(gè)事件是否觸發(fā),如:wx.onSocketOpen,wx.onCompassChange 等。
這類 API 接受一個(gè)回調(diào)函數(shù)作為參數(shù),當(dāng)事件觸發(fā)時(shí)會(huì)調(diào)用這個(gè)回調(diào)函數(shù),并將相關(guān)數(shù)據(jù)以參數(shù)形式傳入。
代碼示例
wx.onCompassChange(function (res) {
console.log(res.direction)
})
我們約定,以 Sync 結(jié)尾的 API 都是同步 API, 如 wx.setStorageSync,wx.getSystemInfoSync 等。此外,也有一些其他的同步 API,如 wx.createWorker,wx.getBackgroundAudioManager 等,詳情參見 API 文檔中的說明。
同步 API 的執(zhí)行結(jié)果可以通過函數(shù)返回值直接獲取,如果執(zhí)行出錯(cuò)會(huì)拋出異常。
代碼示例
try {
wx.setStorageSync('key', 'value')
} catch (e) {
console.error(e)
}
大多數(shù) API 都是異步 API,如 wx.request,wx.login 等。這類 API 接口通常都接受一個(gè) Object 類型的參數(shù),這個(gè)參數(shù)都支持按需指定以下字段來接收接口調(diào)用結(jié)果:
Object 參數(shù)說明
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
success | function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) |
fail | function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) |
其他 | Any | - | 接口定義的其他參數(shù) |
回調(diào)函數(shù)的參數(shù)
success,fail,complete 函數(shù)調(diào)用時(shí)會(huì)傳入一個(gè) Object 類型參數(shù),包含以下字段:
屬性 | 類型 | 說明 |
---|---|---|
errMsg | string | 錯(cuò)誤信息,如果調(diào)用成功返回 ${apiName}:ok
|
errCode | number | 錯(cuò)誤碼,僅部分 API 支持,具體含義請(qǐng)參考對(duì)應(yīng) API 文檔,成功時(shí)為 0 。 |
其他 | Any | 接口返回的其他數(shù)據(jù) |
異步 API 的執(zhí)行結(jié)果需要通過 Object 類型的參數(shù)中傳入的對(duì)應(yīng)回調(diào)函數(shù)獲取。部分異步 API 也會(huì)有返回值,可以用來實(shí)現(xiàn)更豐富的功能,如 wx.request,wx.connectSocket 等。
代碼示例
wx.login({
success(res) {
console.log(res.code)
}
})
基礎(chǔ)庫(kù) 2.10.2 版本起,異步 API 支持 callback & promise 兩種調(diào)用方式。當(dāng)接口參數(shù) Object 對(duì)象中不包含 success/fail/complete 時(shí)將默認(rèn)返回 promise,否則仍按回調(diào)方式執(zhí)行,無返回值。
代碼示例
// callback 形式調(diào)用
wx.chooseImage({
success(res) {
console.log('res:', res)
}
})
// promise 形式調(diào)用
wx.chooseImage().then(res => console.log('res: ', res))
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: