• 2023年1月15日

uni.login异步请求

在开发过程中会遇到uni.login时需要执行一些网络请求,然而因为uni.login并不会等待网络请求结束后(哪怕网络请求使用了await)再返回。

可以通过new promise来实现异步化


async function login() {

	await new Promise((resolve, reject) => {
		// uni.login非异步,所以用Promise包装  
		uni.login({
			async success(res) {
				let r = await uni.$u.http.get('api/user/login?code=' + res.code)
				if (r.succeeded) {
					 				iniData(r.data)
					resolve(res.code)
				} else { 
					reject(res)
				}
				
			},
			fail(res) {

 
				reject(res)
			} 
		})

	})

 

}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注