这节课您这个方法是不是写得太复杂了?
来源:3-18 小程序使用 promise 解决异步编程

宁静的海8752814
2021-07-08
这节课实现的功能是用一个方法嵌套4个方法来实现的,是不是太复杂了,还需要勾选取消ES6转ES5。我也写了一个方法,这样是不是更好?也不需要取消勾选转ES5。代码如下:
onAsyncClick(){
const req = (params)=>{
return new Promise((resolve,reject)=>{
wx.request({
…params,
success:(result)=>{
resolve(result)
console.log(result);
},
fail:(err)=>{
reject(err)
}
})
})
}
async function runAsync(){
const resA = await req({
url: ‘https://api.imooc-blog.lgdsunday.club/api/test/A’
})
console.log(resA.data.data.msg);
const resB = await req({
url: ‘https://api.imooc-blog.lgdsunday.club/api/test/B’
})
console.log(resB.data.data.msg);
const resC = await req({
url: ‘https://api.imooc-blog.lgdsunday.club/api/test/C’
})
console.log(resC.data.data.msg);
const resD = await req({
url: ‘https://api.imooc-blog.lgdsunday.club/api/test/D’
})
console.log(resD.data.data.msg);
}
runAsync()
},
1回答
-
Sunday
2021-07-08
你好:
<定义一个公用的 req,在进行请求时,调用 req 方法> 。这样的代码是非常好的,是一种非常适合于项目中的写法。
但是在课程中的当前场景下,综合来考虑这种《最优解的代码》,并不一定适合【具体某个功能的代码演示】。
这一小节的目的是为了演示 async + await 处理异步请求的简洁性。所以代码的重点是在这个位置:
而封装的那四个请求方法,虽然代码量变大了,但是因为不需要封装 req 的统一处理逻辑,所以逻辑型更加简单。可以让同学把更多的精力用到理解 async + await 的优势之中。
因此,这里并没有封装 req 方法,而是采用了更加传统的 多个方法定义的形式。在后面的项目中,我们也会封装类似的 req 方法进行项目代码的编写的。
10
相似问题