var request = require('request');
function send(){
var options = {
'method': 'POST',
'url': 'http://https://mail.georgebrown.ca/login',
'headers': {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'text/html, application/xhtml+xml, */*',
},
form: {
'account': 'lch66',
'password': '123456',
'token': '-',
'_time': '1622207143899',
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});}
这里的 response值只能控制台输出,我先把它return出来,调用这个send函数就可以得到返回的json值,因为我想再写一个处理返回值的函数把返回值传进去再处理
类似这样:var data=send() data可以获得request的返回值 或者有什么其他方法可以在其他函数中调用request返回的值 哪位大佬可以帮忙写一下,十分感谢!
看加粗部分,需要用到数据时传递回调函数,在success成功后执行回调传递数据
var request = require('request');
function send(callback){
var options = {
'method': 'POST',
'url': 'http://https://mail.georgebrown.ca/login',
'headers': {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'text/html, application/xhtml+xml, */*',
},
form: {
'account': 'lch66',
'password': '123456',
'token': '-',
'_time': '1622207143899',
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
callback(response.body);
});}
function getData(){
send((body)=>{
console.log(body)
})
}
getData();
ajax 默认的请求方式是异步的,你需要去了解下ajax异步的概念
异步加载的内容,不能用return返回值,一定必须要学会使用回调函数。
要把所有加载之后的后续操作都放到回调函数中。
var request = require('request');
function send(callback){
var options = {
'method': 'POST',
'url': 'http://https://mail.georgebrown.ca/login',
'headers': {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'text/html, application/xhtml+xml, */*',
},
form: {
'account': 'lch66',
'password': '123456',
'token': '-',
'_time': '1622207143899',
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
callback(response.body);
});}
function myname(data) { //处理返回值的函数
}
send(myname);
题主的想法可以实现,你封装send时候,传一个回调函数进去当requst回来的时候,把数据传入回调函数进行调用
可以把方法改成Promise的写法,用async,await来操作,可以实现
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632