| 123456789101112131415161718192021222324 |
- export function useConfirm() {
- const confirm = (options) => {
- return new Promise((resolve, reject) => {
- const eventId = Date.now() + '_' + Math.random()
- const resultEvent = `confirmResult_${eventId}`
-
- const handler = (result) => {
- uni.$off(resultEvent, handler)
- if (result) resolve(true)
- else reject(false)
- }
-
- uni.$on(resultEvent, handler)
- uni.$emit('showConfirm', { ...options, eventId })
-
- // 超时处理
- setTimeout(() => {
- uni.$off(resultEvent, handler)
- reject(new Error('确认弹窗超时'))
- }, 60000)
- })
- }
- return confirm
- }
|