问题描述
我发出了http请求(类:ClientRequest),我需要通过promise从我的“登录方法”中返回两个变量。
function login(name,pass,server) {
return new Promise((resolve,reject) => {
const request = net.request({
method: 'GET',url: server+'/names.nsf?Login&Username=' + name + '&Password=' + pass,useSessionCookies: true,redirect: 'follow'
}
)
var first
var second
///first
request.on('response',(response) => {
...
first = response.statusCode
})
///second
request.on('redirect',(statusCode,method,redirectUrl) => {
...
second = redirectUrl
})
resolve([first,second])
request.end()
});
}
我以这种方式使用它:
ipcMain.on('loginbackend',async (event,arg) => {
try {
const loginInfo = await login(arg.name,arg.pass,arg.server)
event.returnValue = loginInfo
}
catch (error) {
console.error('ERROR:');
console.error(error);
}
});
我可以返回将resolve()放到request.on方法中的var,但是我需要从两个request.on中都返回两个var。似乎request.on正在同步,我该怎么办?
解决方法
当发出end
的{{1}}事件时,您应该返回变量
response