赞
踩
Promise的简单应用(微信小程序版)-解决异步嵌套调用
一、定义一个promise工具类(Promise.js)
//封装request请求 const request=function(url,method,params){ return new Promise(function(resolve,reject){ wx.request({ url: url, data:params, method:method success:function(res){ if(res.data.status==200){ return resolve(res); }else{ reject(res); } }, fail:function(erro){ reject(erro) } }) }) } module.exports={ request }
二、导入到使用的文件,并调用
const { taskList } = require("../../utils/config.js"); const config=require("../../utils/config.js"); const promise=require("../../utils/Promise.js") const app = getApp(); Page({ data: {}, getDato(){ let that=this let params={ pageNo:that.data.pageNo, pageSize:that.data.pageSize, taskId:"", taskName:"", taskUsrId:"", taskSts:"1" } //第一次请求 promise.request(config.url+config.taskList,'GET',params).then(function(res){ //第一次请求结果 console.log("promise结果是",res) //第二次请求 return promise.request(config.url+config.taskList,params) }).then(function(res){ //第二次请求结果 console.log("对了吗",res) //若还有请求继续return一个promise对象,并在后面调用then方法 }) }, onShow() { let that=this; that.getDato() } })
三、实际效果
可以看到两个请求都成功了,这里两次请求用的是同一个接口,可以换成不同的接口试试。
四、验证
当将第一次请求的config.taskList后再拼接上一个任意字符使请求报错,那么第二次请求也不会执行,同微信小程序的回调函数效果一致
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。