使用Promise将uni.showModal封装为一个公共方法
时间: 2023-09-16 10:06:04 浏览: 141
NodeJS中利用Promise来封装异步函数
### 回答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`中包含了用户的点击信息。
阅读全文