Я создаю тестовое приложение, используя systeminformation .Я пытаюсь сделать так, чтобы каждый then
ждал завершения предыдущей функции.Проблема, с которой я сталкиваюсь, состоит в том, что функции, которые я выполняю внутри, также обещают, поэтому следующие then
запускаются до завершения функции.
const si = require('systeminformation');
var cpuObj;
function initCPU() {
return new Promise(resolve => {
si.cpu()
.then(data => cpuObj = data)
.catch(err => console.log(err))
.then(() => {
setTimeout(() => console.log("timer"), 3000);
})
.then(() => {
si.cpuTemperature().then(data => console.log(data));
})
.then(() => {
console.log("here");
});
});
}
function test() {
console.log(cpuObj);
}
initCPU().then(() => {
test();
});
Вывод:
here
{ main: -1, cores: [], max: -1 }
timer
Ожидаемый результат:
{ main: -1, cores: [], max: -1 }
timer
here