uni-app uni.getProvider在最新版本不支持Promise
uni-app uni.getProvider在最新版本不支持Promise
项目信息 | 详情 |
---|---|
产品分类 | uniapp/小程序/微信 |
PC开发环境 | Windows |
操作系统版本号 | windows11 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.45 |
第三方开发者工具版本号 | 1.06.2412050 |
基础库版本号 | 2.23.4 |
项目创建方式 | HBuilderX |
操作步骤:
uni.getProvider({ service: 'oauth' }).then(res => {
console.log('userLogin', res)
}).catch(err => {
console.error(err)
})
或者
const res = await uni.getProvider({ service: 'oauth' })
console.log('userLogin', res)
预期结果:
支持Promise方式
实际结果:
不支持
bug描述:
uni.getProvider在最新版本不支持Promise,如下写法:
uni.getProvider({ service: 'oauth' }).then(res => {
console.log('userLogin', res)
}).catch(err => {
console.error(err)
})
或者
const res = await uni.getProvider({ service: 'oauth' })
console.log('userLogin', res)
打印返回
userLogin undefined
更多关于uni-app uni.getProvider在最新版本不支持Promise的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
你好,是微信小程序出现的问题吗,我这里测试没有发现这个问题,还请您提供更详细的代码
更多关于uni-app uni.getProvider在最新版本不支持Promise的实战教程也可以访问 https://www.itying.com/category-93-b0.html
感谢回复,通过微信官方已经知道是小程序基础库的问题,当基础库低于3.0.2时才会出现这个问题
根据uni-app官方文档,uni.getProvider
确实不支持Promise风格的调用方式。这个API采用的是传统的回调函数风格,需要按照以下方式使用:
uni.getProvider({
service: 'oauth',
success: (res) => {
console.log('userLogin', res)
},
fail: (err) => {
console.error(err)
}
})
如果需要使用Promise风格,可以自行封装:
function getProviderPromise(options) {
return new Promise((resolve, reject) => {
uni.getProvider({
...options,
success: resolve,
fail: reject
})
})
}
// 使用示例
const res = await getProviderPromise({ service: 'oauth' })