@@ -0,0 +1,45 @@
|
||||
const request = require('request')
|
||||
|
||||
const { mainOn } = require('../../common/ipc')
|
||||
|
||||
const tasks = []
|
||||
|
||||
mainOn('request', (event, options) => {
|
||||
// console.log(args)
|
||||
if (!options) return
|
||||
let index = fetchData(options, (err, resp) => {
|
||||
tasks[index] = null
|
||||
if (err) {
|
||||
console.log(err)
|
||||
event.sender.send('response', err.message, null)
|
||||
return
|
||||
}
|
||||
event.sender.send('response', null, resp.body)
|
||||
})
|
||||
event.returnValue = index
|
||||
})
|
||||
|
||||
mainOn('cancelRequest', (event, index) => {
|
||||
if (index == null) return
|
||||
let r = tasks[index]
|
||||
if (r == null) return
|
||||
r.abort()
|
||||
tasks[index] = null
|
||||
})
|
||||
|
||||
const fetchData = (options, callback) => pushTask(tasks, request(options.url, {
|
||||
method: options.method,
|
||||
headers: options.headers,
|
||||
Origin: options.origin,
|
||||
}, (err, resp) => {
|
||||
if (err) return callback(err, null)
|
||||
callback(null, resp)
|
||||
}))
|
||||
|
||||
const pushTask = (tasks, newTask) => {
|
||||
for (const [index, task] of tasks.entries()) {
|
||||
if (task == null) {
|
||||
return tasks[index].push(newTask)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user