- 在vue的methods中的函数调用另一个函数的返回值

代码核心部分

_ajax.action("要传递的参数",function(返回值){
		//得到返回值后的逻辑处理
	});
	
vm.action("参数",fun){
	//一堆处理后得到的返回值res
	fun(res)
}
  • 下面是完整实现过程
let vm = new Vue({
	el:"#app",
	methods:{
		//在_ajax()中调用action()方法的返回值
		_ajax(limits=20,pages=1){
			axios.get('/show',{params:{
					limit:limits,
					page:pages
				}}).then(res=>{
					var newList = [];
					res.data.data.map((item,index)=>{
						newList.push(Object.assign({},item,{ischeck:false}))
					})
					console.log(newList);
					//判断抢修级别
					for(var i=0;i<newList.length;i++){
					//此处调用action();
						vm.action(newList[i].element_name,function(res){
							newList[i].flow = res;
						});
					}
					this.jzxLists = newList;
				},err=>{
					console.log(err.statusText)
				})
		},
		action(jzName,fun){
			$.ajax({
				type:'get',
				url:'/flow',
				async :false,
				data:{
					jzName:jzName
				},
				success:function(res){
					if(res){
						var dataObj  = eval('('+ res+')');
						//取流量
						var num = 0;
						for(var k=0;k<dataObj.length;k++){
							num = num + parseFloat((parseFloat(dataObj[k].UpAndDownTheCell)/1024).toFixed(2));
						}
						//取人数	
						var numMan = 0;
						for(var k=0;k<dataObj.length;k++){
							numMan = numMan + parseFloat(dataObj[k].LargestUser);
						}
						var nu = num/numMan;
						fun(nu);
					}else{
						fun(0);
					}
				}
			})
		}
	}
})
Logo

前往低代码交流专区

更多推荐