在我们日常项目开发阶段,会遇到很多异步的函数,包括网络请求,微信的官方API等。这些函数如果不进行封装直接使用的话,会造成回调地狱的问题,回调函数一层套着一层,代码难以阅读,后期难以维护的问题。比如说下面这段代码.
const regeneratorRuntime = require('../../libs/runtime-module.js')
复制代码
然后我们把请求简单封装一下(其实下面的代码还可以在封装一层)
export const loginBindo = ({ username, password }) => {
return new Promise((resolve, reject) => {
let res;
return wx.request({
url: 'https://test.com/api/login',
data: {
username,
password,
},
method: 'POST',
header: {
'content-type': 'application/json'
},
success(res) {
resolve(res.data);
},
fail(err) {
reject(err);
},
});
});
};
复制代码
App({
onLaunch: async function () {
this.myfunc();
},
globalData: {
userInfo: null,
},
myfunc: async function() {
console.log('test');
const user = await loginBindo({
username: 'test@test.com',
password: 'test',
});
console.log('test', user);
this.setData({
userInfo: user,
});
},
});
复制代码
然后我们看一下打印的内容