uni-app 對部分 API 進行了 Promise 封裝,返回數據的第一個參數是錯誤對象,第二個參數是返回數據。
詳細策略如下:
- 異步的方法,如果不傳入 success、fail、complete 等 callback 參數,將以 Promise 返回數據。例如:uni.getImageInfo()
- 異步的方法且有返回對象,如果希望獲取返回對象,必須至少傳入一項 success、fail、complete 等 callback 參數。例如:uni.connectSocket()
- 同步的方法(即以 sync 結束),不封裝 Promise。例如:uni.getSystemInfoSync()
- 以 create 開頭的方法,不封裝 Promise。例如:uni.createMapContext()
- 以 manager 結束的方法,不封裝 Promise。例如:uni.getBackgroundAudioManager()
使用示例:
// 默認方式 uni.request({ url: 'https://www.example.com/request', success: (res) => { console.log(res.data); } }); // Promise uni.request({ url: 'https://www.example.com/request' }) .then(data => {//data為一個數組,數組第一項為錯誤信息,第二項為返回數據 var [error, res] = data; console.log(res.data); }) // Await function async request () { var [error, res] = await uni.request({ url: 'https://www.example.com/request' }); console.log(res.data); }
相關資料: