uniapp请求数据的第一个条为null的问题

今天封装uniapp网络请求的时候 测试了uni.request是支持then方法的

所以简单的封装了一下


const dfUrl='http://www.********.xyz:3000'
	
	 function Request(options){
		return uni.request({
			url:dfUrl+options.url,
			method:options.method||'get',
			data:options.data||{},
			timeout:10000
		})
	}
	
	module.exports.Request=Request

然后发现 每次请求到的数据 第一个都是null

如下图

在这里插入图片描述

本以为是接口问题

然后用postman测试了一下

在这里插入图片描述

然后感觉是封装请求的问题 就对请求进行 Promise封装

const defaultUrl = 'http://********.xyz:3000'

function Request(options) {
	uni.showLoading({
		title:"玩命加载中"
	})
	return new Promise((resolve, reject) => {
		uni.request({
			url: defaultUrl + options.url,
			method: options.method || "get",
			data: options.data || {},
			header: options.header || {},
			success: res=>{
				resolve(res)
			},
			fail: err=>{
				reject(err)
			},
			complete:()=>{
				uni.hideLoading()
			}

		})
	})
}

module.exports.Request = Request

再次测试

在这里插入图片描述

问题解决

虽然uniapp.request支持then方法,但我们也不要去偷懒 还是要进行promise封装一下

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UniApp中,你可以使用事件总线进行组件之间的通信和数据传递。以下是一种使用事件总线进行数据请求的方法: 首先,你需要创建一个事件总线实例,可以在全局范围内创建并导出: ```javascript // event-bus.js import Vue from 'vue' export const eventBus = new Vue() ``` 然后,在发送请求的组件中,你可以使用事件总线来触发一个自定义事件,并传递数据: ```javascript // sender.vue import { eventBus } from 'path/to/event-bus.js' // 在某个方法中发送请求 methods: { fetchData() { // 发送请求获取数据 const data = { /* 请求参数 */ } // 触发自定义事件,并传递数据 eventBus.$emit('request-data', data) } } ``` 接下来,在接收数据的组件中,监听相同的自定义事件,并处理接收到的数据: ```javascript // receiver.vue import { eventBus } from 'path/to/event-bus.js' export default { data() { return { receivedData: null } }, created() { // 监听自定义事件 eventBus.$on('request-data', this.handleDataRequest) }, methods: { handleDataRequest(data) { // 处理接收到的数据 // 发起请求,更新数据等等... this.receivedData = data } }, beforeDestroy() { // 组件销毁前取消事件监听 eventBus.$off('request-data', this.handleDataRequest) } } ``` 通过事件总线,发送请求的组件可以将数据发送给接收数据的组件,实现组件之间的数据传递和通信。注意在组件销毁前取消事件监听,以避免内存泄漏。 希望这个例子能帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值