问题阐述:
在调取接口时,我们通常会在调取接口前给用户一个正在加载的一个提示框,也就是uni.showLoading,当接口可以访问成功时隐藏加载提示框(uni.hideLoading),然后根据访问成功后端返回的状态(success、error)来判断数据是否成功,当状态为success时需要给用户提示获取成功,反之提示获取失败,这时使用的就是消息提示框(uni.showToast);然而在调取接口时通常我们看到的是加载提示框在访问成功后隐藏了,但是我们后面设置的消息提示框 uni.showToast 却没有出现。
解决方法: 使用 == setTimeout() == 方法异步队列调用 就可以解决冲突了
var res = await postApi('****')
if (res.code == 1) {
setTimeout(() => {
uni.showToast({
title: '保存成功!'
icon: 'success'
})
}, 30)
uni.navigateBack()
} else {
setTimeout(() => {
uni.showToast({
title: '保存失败!'
})
}, 30)
}