4.0 KiB
4.0 KiB
name, description
| name | description |
|---|---|
| uni-promises | Promise wrappers for uni-app APIs - convert callback-based APIs to Promise-based |
uni-promises
Promise wrappers for uni-app's callback-based APIs. Convert uni-app APIs to return Promises for better async/await support.
Installation
npm i @uni-helper/uni-promises
Usage
Instead of using callbacks:
// Original callback style
uni.request({
url: 'https://api.example.com',
success: (res) => {
console.log(res.data)
},
fail: (err) => {
console.error(err)
},
})
Use Promises:
import { request } from '@uni-helper/uni-promises'
// Promise style
const res = await request({
url: 'https://api.example.com',
})
console.log(res.data)
Available APIs
Most uni-app APIs are wrapped:
Network
request- HTTP requestuploadFile- File uploaddownloadFile- File downloadconnectSocket- WebSocket
Storage
setStorage- Set storagegetStorage- Get storageremoveStorage- Remove storageclearStorage- Clear all storagegetStorageInfo- Storage info
Media
chooseImage- Select imageschooseVideo- Select videochooseMedia- Select mediapreviewImage- Preview imagessaveImageToPhotosAlbum- Save imagecompressImage- Compress image
File
saveFile- Save filegetFileInfo- File infogetSavedFileList- Saved files listremoveSavedFile- Remove saved fileopenDocument- Open document
Location
getLocation- Get locationchooseLocation- Choose locationopenLocation- Open location
Device
getSystemInfo- System infogetNetworkType- Network typescanCode- QR/barcode scansetClipboardData- Copy to clipboardgetClipboardData- Get clipboard
UI
showToast- Show toastshowModal- Show modalshowActionSheet- Show action sheetshowLoading- Show loadinghideLoading- Hide loadingshowNavigationBarLoading- Nav loadinghideNavigationBarLoading- Hide nav loadingsetNavigationBarTitle- Set nav titlesetNavigationBarColor- Set nav colorpageScrollTo- Scroll to position
Navigation
navigateTo- Navigate to pageredirectTo- Redirect to pagereLaunch- Re-launch appswitchTab- Switch tabnavigateBack- Go back
Login
login- User logincheckSession- Check sessiongetUserProfile- Get user profilegetUserInfo- Get user info
Payment
requestPayment- Request payment
Example Usage
import {
showModal,
showToast,
getStorage,
navigateTo,
getSystemInfo,
chooseImage,
uploadFile,
} from '@uni-helper/uni-promises'
async function handleUserAction() {
// Show confirmation
const { confirm } = await showModal({
title: 'Confirm',
content: 'Are you sure?',
})
if (!confirm) return
try {
// Get cached data
const { data: token } = await getStorage({ key: 'token' })
// Get system info
const systemInfo = await getSystemInfo()
console.log('Platform:', systemInfo.platform)
// Select image
const { tempFilePaths } = await chooseImage({
count: 1,
sizeType: ['compressed'],
})
// Upload file
const uploadRes = await uploadFile({
url: 'https://api.example.com/upload',
filePath: tempFilePaths[0],
name: 'file',
})
await showToast({
title: 'Success!',
icon: 'success',
})
// Navigate
await navigateTo({
url: '/pages/success/index',
})
} catch (error) {
await showToast({
title: error.message || 'Failed',
icon: 'error',
})
}
}
Error Handling
All wrapped APIs reject with standard Error objects:
import { request } from '@uni-helper/uni-promises'
try {
const res = await request({ url: 'https://api.example.com' })
} catch (error) {
// error.message contains the fail callback message
console.error('Request failed:', error.message)
}