Попытка научиться работать с Promises и Async.Я могу отправить объект в модуль, но по какой-то причине я продолжаю получать undefined
при обработке return
.Я сузил его до того, что либо мой возврат на мой модуль является неправильным, либо я кодирую что-то не так на моем Async.
main.js
ipcMain.on('file-object', (e, res) => {
module.exports.res = res
console.log('Starting main.js')
async function findTest() {
const testResult = await valid.jsonTest()
console.log(testResult)
mainWindow.webContents.send('test-results', testResult)
}
findTest()
})
foobar.js
module.exports = {
jsonTest: function() {
let testPromise = new Promise((resolve) => {
child = exec('/usr/bin/java -jar ' + jarFile + ' ' + res.res.path, function(error, stdout, stderr) {
if (stderr !== "") {
resolve(
resultArray = {
"status": "error",
"response": stderr
}
)
} else {
resolve(stdout)
}
})
})
testPromise.then((successMessage) => {
console.log(JSON.stringify(successMessage))
return successMessage
})
}
}
После поиска и чтения нескольких вопросов и ответов I 'Мы также пытались:
let foobar = valid.jsonTest()
waitForElement()
function waitForElement() {
if (typeof foobar !== 'undefined') {
console.log('Getting results')
console.log(foobar)
mainWindow.webContents.send('test-results', foobar)
return
}
else {
console.log(foobar)
setTimeout(waitForElement, 1000)
}
}
, но я получаю непрерывный undefined
, поэтому я думаю, что мог неправильно вернуть модуль.Также пробовал:
let validationMessage = valid.jsonTest()
console.log("Starting main.js")
let resultPromise = () => {
return new Promise((resolve) => {
console.log('entering promise')
resolve()
console.log(`Status results: ${status}`)
})
}
Promise.resolve().then(() => resultPromise(
console.log(validationMessage.status)
))
Исследовательские ссылки из моих запросов:
Как я могу отправить объект в файл, обработать этот объект, вернуть и получить результат, потому что я что-то здесь упускаю, и я не понимаю, почему я получаю неопределенное значение, и мое Обещание продолжается.