使用Promise封装uni.showModal并提供一个参数,可以传入方法,成功则执行传入的方法
时间: 2023-03-29 12:00:20 浏览: 155
好的,我可以回答这个问题。以下是使用 Promise 封装 uni.showModal 并提供一个参数的代码示例:
```javascript
function showModalWithCallback(options) {
return new Promise((resolve, reject) => {
uni.showModal({
...options,
success: (res) => {
if (res.confirm) {
resolve();
} else if (res.cancel) {
reject();
}
},
fail: () => {
reject();
},
});
});
}
// 使用示例
showModalWithCallback({
title: '提示',
content: '确定要删除吗?',
}).then(() => {
console.log('用户点击了确定');
// 执行传入的方法
}).catch(() => {
console.log('用户点击了取消或发生错误');
});
```
这样,你就可以在调用 uni.showModal 的时候传入一个方法,在用户点击确定时执行该方法了。
相关问题
使用Promise封装uni.showModal并提供两个参数,第一个参数传入属性,第二个参数传入方法,用户点击确执行传入的方法
好的,我可以回答这个问题。以下是使用 Promise 封装 uni.showModal 的代码:
```javascript
function showModalWithPromise(props, callback) {
return new Promise((resolve, reject) => {
uni.showModal({
...props,
success: (res) => {
if (res.confirm) {
callback && callback();
resolve();
} else {
reject();
}
},
fail: () => {
reject();
}
});
});
}
```
其中,props 是一个对象,包含了 uni.showModal 的所有属性,callback 是一个函数,表示用户点击确定后要执行的方法。调用该函数时,可以这样使用:
```javascript
showModalWithPromise({
title: '提示',
content: '确定要删除吗?',
confirmText: '删除',
cancelText: '取消'
}, () => {
console.log('用户点击了确定');
}).then(() => {
console.log('用户点击了确定并且方法执行成功');
}).catch(() => {
console.log('用户点击了取消或者方法执行失败');
});
```
希望这个回答能够帮到你。
使用Promise将uni.showModal封装为一个公共方法
### 回答1:
好的,我可以回答这个问题。以下是使用 Promise 将 uni.showModal 封装为一个公共方法的示例代码:
```
function showModal(title, content) {
return new Promise((resolve, reject) => {
uni.showModal({
title: title,
content: content,
success: (res) => {
if (res.confirm) {
resolve(true);
} else if (res.cancel) {
resolve(false);
}
},
fail: (err) => {
reject(err);
}
});
});
}
```
这个方法接受两个参数:标题和内容。它返回一个 Promise 对象,当用户点击确认或取消时,resolve 函数会被调用并传递一个布尔值,表示用户的选择。如果调用 uni.showModal 函数失败,reject 函数会被调用并传递一个错误对象。
### 回答2:
使用Promise封装uni.showModal方法可以让其更加灵活和易用。以下是一个示例代码:
```javascript
// 封装公共方法
function showModal(title, content) {
return new Promise((resolve, reject) => {
uni.showModal({
title: title,
content: content,
success: res => {
if (res.confirm) {
resolve(true); // 用户点击了确定按钮
} else {
resolve(false); // 用户点击了取消按钮
}
},
fail: err => {
reject(err); // 调用失败时返回错误信息
}
});
});
}
// 调用示例
showModal('提示', '确定删除吗?')
.then(confirm => {
if (confirm) {
// 用户点击了确定按钮
console.log('点击了确定按钮');
// 执行删除操作
} else {
// 用户点击了取消按钮
console.log('点击了取消按钮');
}
})
.catch(err => {
console.error('调用失败:', err);
});
```
以上代码将uni.showModal封装为一个公共方法showModal,并且调用时返回一个Promise对象。当用户点击确定按钮时,Promise将resolve true;当用户点击取消按钮时,Promise将resolve false。通过then方法可以获取到resolve的结果,并进行相应的操作。通过catch方法可以捕获到reject的错误信息。这样封装后的方法使用起来更加简洁和清晰。
### 回答3:
使用Promise将uni.showModal封装为一个公共方法方法如下:
```javascript
// 公共方法名: showModal()
// 参数: title(弹窗标题,默认为'提示'), content(弹窗内容,默认为空), confirmText(确认按钮文字,默认为'确定'), cancelText(取消按钮文字,默认为'取消')
// 返回值: Promise对象,resolve参数为用户点击确认按钮时的返回值,reject参数为用户点击取消按钮时的返回值
const showModal = (title = '提示', content = '', confirmText = '确定', cancelText = '取消') => {
return new Promise((resolve, reject) => {
uni.showModal({
title: title,
content: content,
confirmText: confirmText,
cancelText: cancelText,
success: res => {
if (res.confirm) {
resolve(res)
} else if (res.cancel) {
reject(res)
}
},
fail: error => {
reject(error)
}
})
})
}
```
以上是封装的公共方法,该方法名为`showModal()`,可以在需要使用`uni.showModal`的地方调用该公共方法进行弹窗操作。
使用方法示例:
```javascript
showModal('提醒', '确定要删除吗?', '确认删除', '取消删除')
.then(res => {
console.log('用户点击确认', res)
// 处理确认操作
})
.catch(error => {
console.log('用户点击取消', error)
// 处理取消操作
})
```
以上示例中,当用户点击确认按钮时,`then`函数中的回调函数将会被执行,同时传入的参数`res`中包含了用户的点击信息。当用户点击取消按钮时,`catch`函数中的回调函数将会被执行,同时传入的参数`error`中包含了用户的点击信息。
阅读全文
相关推荐














