var url = "/api/pc/ca/manager/member/modify/applyInfo/page"; var bsmpUrl = pm.environment.get("server.url.bsmp"); var username = pm.environment.get("bsmp.login.pc.username"); var password = pm.environment.get("bsmp.login.pc.password"); var salt = pm.environment.get("bsmp.login.pc.salt"); var orgId = pm.environment.get("bsmp.login.pc.orgId"); var orgLevel = pm.environment.get("bsmp.login.pc.orgLevel"); function doLogin() { return new Promise(function (resolve, reject) { let echoPostRequest = { url: "http://" + bsmpUrl + "/api/pc/proxy/login", method: "POST", header: ["Content-Type: application/json; charset=UTF-8"], body: { mode: "raw", raw: '{"username":"' + username + '","password":"' + password + '","salt":"' + salt + '"}' } }; pm.sendRequest(echoPostRequest, function (err, res) { console.log("loginRsp:" + res.json()); console.log("token:" + res.json().data); var token = res.json().data; var str = token + url; pm.globals.set("temp", str); var sign = CryptoJS.MD5(str).toString(); pm.globals.set("token", token); pm.globals.set("sign", sign); resolve(); }); }); } function doSign() { let echoGetRequest = { url: "http://" + bsmpUrl + "/api/pc/proxy/complete" + "?" + "orgId=" + orgId + "&" + "orgLevel=" + orgLevel + "&" + "time=" + "0.366126544927456", method: "GET" }; pm.sendRequest(echoGetRequest, function (err, res) { console.log("res:" + res.json()); }); } doLogin().then(function () { doSign(); }); 此段代码为何不执行doSign()方法
时间: 2024-04-29 10:21:01 浏览: 15
根据代码分析,当执行`doLogin()`方法后,会返回一个Promise对象。在`then()`方法中传入的回调函数会在`doLogin()`方法执行完毕后被调用。但是,`doSign()`方法并没有被包裹在Promise中,也没有被放在回调函数中,因此不会被执行。如果想要在`doLogin()`方法执行完毕后立即执行`doSign()`方法,可以将`doSign()`方法放在`resolve()`方法的后面,或者在`then()`方法中再次调用`doSign()`方法。
相关问题
var url = '/api/pc/ca/manager/member/modify/applyInfo/page'; //1.dologin var bsmpUrl = pm.environment.get("server.url.bsmp"); var username = pm.environment.get("bsmp.login.pc.username"); var password = pm.environment.get("bsmp.login.pc.password"); var salt = pm.environment.get("bsmp.login.pc.salt"); var orgId = pm.environment.get("bsmp.login.pc.orgId"); var orgLevel = pm.environment.get("bsmp.login.pc.orgLevel"); let echoPostRequest = { url: 'http://' + bsmpUrl + '/api/pc/proxy/login', method: 'POST', header: [ "Content-Type: application/json; charset=UTF-8" ], body: { mode: 'raw', raw: '{\"username\":\"'+username+'\",\"password\":\"'+password+'\",\"salt\":\"'+salt+'\"}' } }; let echoGetRequest = { url: 'http://' + bsmpUrl + '/api/pc/proxy/complete' + '?' + 'orgId='+ orgId + '&' + 'orgLevel=' + orgLevel + '&' + 'time=' + '0.366126544927456', method: 'GET' }; pm.sendRequest(echoPostRequest, function (err, res) { console.log("loginRsp:" + res.json()); console.log("token:" + res.json().data) //2.doSign var token = res.json().data; var str = token + url pm.globals.set("temp", str); var sign = CryptoJS.MD5(str).toString(); pm.globals.set("token",token ); pm.globals.set("sign", sign); }); pm.sendRequest(echoGetRequest, function (err, res) { console.log("res:" + res.json()); }); 如何将此代码中的两个接口,按照顺序调用
可以使用回调函数或Promise对象来保证这两个接口按照顺序调用。
使用回调函数的方式,可以在第一个请求的回调函数中调用第二个请求。例如:
```
var url = '/api/pc/ca/manager/member/modify/applyInfo/page';
var bsmpUrl = pm.environment.get("server.url.bsmp");
var username = pm.environment.get("bsmp.login.pc.username");
var password = pm.environment.get("bsmp.login.pc.password");
var salt = pm.environment.get("bsmp.login.pc.salt");
var orgId = pm.environment.get("bsmp.login.pc.orgId");
var orgLevel = pm.environment.get("bsmp.login.pc.orgLevel");
function doLogin(callback) {
let echoPostRequest = {
url: 'http://' + bsmpUrl + '/api/pc/proxy/login',
method: 'POST',
header: [
"Content-Type: application/json; charset=UTF-8"
],
body: {
mode: 'raw',
raw: '{\"username\":\"'+username+'\",\"password\":\"'+password+'\",\"salt\":\"'+salt+'\"}'
}
};
pm.sendRequest(echoPostRequest, function (err, res) {
console.log("loginRsp:" + res.json());
console.log("token:" + res.json().data);
var token = res.json().data;
var str = token + url;
pm.globals.set("temp", str);
var sign = CryptoJS.MD5(str).toString();
pm.globals.set("token",token );
pm.globals.set("sign", sign);
callback();
});
}
function doSign() {
var token = pm.globals.get("token");
var sign = pm.globals.get("sign");
let echoGetRequest = {
url: 'http://' + bsmpUrl + '/api/pc/proxy/complete' + '?' + 'orgId='+ orgId + '&' + 'orgLevel=' + orgLevel + '&' + 'time=' + '0.366126544927456' + '&' + 'token=' + token + '&' + 'sign=' + sign,
method: 'GET'
};
pm.sendRequest(echoGetRequest, function (err, res) {
console.log("res:" + res.json());
});
}
doLogin(function() {
doSign();
});
```
使用Promise对象的方式,可以通过链式调用then方法来保证接口按照指定的顺序调用。例如:
```
var url = '/api/pc/ca/manager/member/modify/applyInfo/page';
var bsmpUrl = pm.environment.get("server.url.bsmp");
var username = pm.environment.get("bsmp.login.pc.username");
var password = pm.environment.get("bsmp.login.pc.password");
var salt = pm.environment.get("bsmp.login.pc.salt");
var orgId = pm.environment.get("bsmp.login.pc.orgId");
var orgLevel = pm.environment.get("bsmp.login.pc.orgLevel");
function doLogin() {
return new Promise(function(resolve, reject) {
let echoPostRequest = {
url: 'http://' + bsmpUrl + '/api/pc/proxy/login',
method: 'POST',
header: [
"Content-Type: application/json; charset=UTF-8"
],
body: {
mode: 'raw',
raw: '{\"username\":\"'+username+'\",\"password\":\"'+password+'\",\"salt\":\"'+salt+'\"}'
}
};
pm.sendRequest(echoPostRequest, function (err, res) {
console.log("loginRsp:" + res.json());
console.log("token:" + res.json().data);
var token = res.json().data;
var str = token + url;
pm.globals.set("temp", str);
var sign = CryptoJS.MD5(str).toString();
pm.globals.set("token",token );
pm.globals.set("sign", sign);
resolve();
});
});
}
function doSign() {
var token = pm.globals.get("token");
var sign = pm.globals.get("sign");
let echoGetRequest = {
url: 'http://' + bsmpUrl + '/api/pc/proxy/complete' + '?' + 'orgId='+ orgId + '&' + 'orgLevel=' + orgLevel + '&' + 'time=' + '0.366126544927456' + '&' + 'token=' + token + '&' + 'sign=' + sign,
method: 'GET'
};
pm.sendRequest(echoGetRequest, function (err, res) {
console.log("res:" + res.json());
});
}
doLogin()
.then(function() {
doSign();
});
```
export function change(obj) { return request.put('/api/common/modify',obj) }
这是一个使用 `request` 对象发送PUT请求的函数。根据代码中的逻辑,它接受一个参数 `obj`,然后将该对象作为请求的payload,并将请求发送到 `/api/common/modify` 路径。
这段代码中使用了一个 `request` 对象,它是一个 HTTP 请求库的实例,用于发送网络请求。通常情况下,`request` 对象是由开发者自己创建的,可能是使用Axios、Fetch或其他类似库创建的。
在这个函数中,`request.put()` 方法用于发送PUT请求,并将 `obj` 作为请求的payload传递给后端。PUT请求通常用于更新或修改资源。
如果你想更深入地了解这段代码的具体实现细节,你可能需要查看 `request` 对象的定义和相关配置。希望这个解释对你有帮助!如果你还有其他问题,请随时提问。