请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

eslint为什么不建议返回一个await

async login (data) {
let reslut = await util.request(
{
url: 'user/login',
data: data
}
)
return reslut
},

如果我直接返回一个await就会报错,但是实际上效果不是一样的吗?还可以节约一点代码

async login (data) {
return await util.request(
{
url: 'user/login',
data: data
}
)
},


正在回答

2回答

因为这个版本的脚手架,还不太支持es7

0 回复 有任何疑惑可以回复我~
  • 提问者 李行知 #1
    但是我多写一步就不会报错了。。也就是说这个是eslint的语法规定觉得这个样子写不好吧。但是为什么不好呢?如果不是很支持es7得话应该就是不允许使用ayncs了吧
    回复 有任何疑惑可以回复我~ 2018-04-24 19:21:11
  • Dell 回复 提问者 李行知 #2
    你说的对,如果await可用,那么只能说eslint用的这个规范,认为这样的写法更好看点,但是我觉得都可以,无所谓
    回复 有任何疑惑可以回复我~ 2018-04-24 23:04:13
  • 提问者 李行知 回复 Dell #3
    好吧,因为我觉得这个样子每次都会多一个变量所以不是很喜欢的样子。还是说其实是我设计的思路有问题。我现在对工具类跟服务类的设计是在工具类哪里设置一个request函数,用来对请求进行一些统一的处理,比如加上loading这些,然后返回一个promise,然后对服务用调用接口进行了一次封装,就是上面看到的那些,但是最后的处理还是要进行.then处理。后来的时候我今天的时候想了一下,在想是不是自己对ayncs理解错误了,这个不应该用来写服务,而是用来对服务进行处理,也就是说ayncs里面做的是业务逻辑的操作,而不是服务的处理。在此问题的另外一个回答下面贴下代码,老师可以看下我的思路吗?
    回复 有任何疑惑可以回复我~ 2018-04-24 23:35:09
提问者 李行知 2018-04-24 23:38:38

util

import axios from 'axios'
import { Message, Loading } from 'element-ui'
import router from '../router/index.js'
export default{
request ({ method = 'post', url, data }) {
let loadingInstance = Loading.service({
text: '加载中'
})
return axios({
url: url,
method: method,
data: data,
baseURL: 'http://localhost:8080/api'
})
.then((result) => {
return result.data
}).catch((err) => {
return err
}).finally(() => {
loadingInstance.close()
})
},

login.service.js

import util from 'util'
export default {
async login (data) {
let reslut = await util.request(
{
url: 'user/login',
data: data
}
)
return reslut
},
async register (data) {
let reslut = await util.request(
{
url: 'user/register',
data: data
}
)
return reslut
},


login.vue

methods: {
submit: function (fromData) {
let validateResult = this.validate(fromData)
if (validateResult.status) {
loginService.login(fromData).then(res => {
if (res.status) {
util.successMessage({
message: res.msg,
onClose: () => {
util.goTabs()
}
})
} else {
util.warningMessage({
message: res.msg
})
}
})
} else {
util.warningMessage({
message: validateResult.msg
})
}
},


是应该在login.service里面返回一个普通的promise对象,然后在vue中的methonds中去定义异步函数然后再在异步函数里面来调用服务,await loginService.login()来进行处理吗?

0 回复 有任何疑惑可以回复我~
  • Dell #1
    是的,就这样即可
    回复 有任何疑惑可以回复我~ 2018-04-26 10:29:35
  • 提问者 李行知 回复 Dell #2
    好的,老师能看看我上次问的哪个babel的问题不
    回复 有任何疑惑可以回复我~ 2018-04-26 10:57:17
  • 提问者 李行知 回复 Dell #3
    https://coding.imooc.com/learn/questiondetail/54438.html
    回复 有任何疑惑可以回复我~ 2018-04-26 10:58:07
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号