vue-resource调用promise取数据方式详解

2020-06-14 05:59:33易采站长站整理

let group_id = this.$route.params.id;
let data = {
group_id: group_id,
mobile: this.mobile,
code: this.smsCode,
name: this.memberName
};
import {MessageBox} from 'mint-ui';
this.$http.post(checkUrl, data)
.then(({data:{code, content, jssdk, msg}}) => { // 请求成功
if (code === 0) {
this.content = content; // 取到数据
} else {
MessageBox('提示', msg);
}
}, ({data:{msg}}) => { // 请求失败
MessageBox('提示',msg);
});

使用解构赋值和剪头函数可以让代码更简洁,使用起来更方便,我们在{data:{code, content, jssdk, msg}}中的数据,实际上是JS引擎把promise给你的参数结构了,因此,你可以直接取到。

需要注意的是,第一个“MessageBox(‘提示’, msg);”中的msg和第二个“MessageBox(‘提示’,msg);”中的msg不是同一个,第一个是成功的msg,第二个是失败的msg。

将post请求方式改成get请求方式的语法(一)

拼接一个参数:


const checkUrl = 'plank-show/start?start_at=' + (new Date()).valueOf();
this.$http.get(checkUrl)
.then(({data:{code, content, jssdk, msg}}) => {
if (code == 0) {
MessageBox('提示', msg);
} else {
MessageBox('提示', msg);
}
}, ({data:{msg}}) => {
MessageBox('提示', msg);
});

将post请求方式改成get请求方式的语法(二)

拼接多个参数:


let queryData = this.$route.query;
let dataUrl = "member/coach?group_id=" + queryData.my_group_id + "&id=" + queryData.cheer_id;
this.$http.get(dataUrl)
.then(({data:{code, content, jssdk, msg}}) => {
if (code === 0) {
this.content = content;
} else {
MessageBox('提示', msg)
}
}, ({data:{msg}}) => {
MessageBox('提示', msg);
});

以上这些,基本上够我现在在项目中使用,使用多次之后,会发现将 vue-resource、promise、ES6语法结合使用,真的很简单很清淅,在以后的工作中,如果遇到了其他的需求,再补上整理后内容。

希望对大家的学习有所帮助,也希望大家多多支持软件开发网。