Я прочитал много документов и смотрю кучу видео, и я просто не могу заставить это работать. Рабочий процесс - это: < /p>
Получить http -запрос < /li>
Запрос обрабатывается с помощью асинхронной функции. < /Li>
Эта функция должна вызвать еще две асинхронные функции в порядке SEQ. Но это не так ждать. Мой Линтер показывает мне, что сообщение «ожидание» не влияет на тип этого выражения ». как для CreateVM, так и для ControlVM. Я использую Nodejs/Express. Я просто опубликую скелет кода. Это должно быть что -то действительно простое, но я просто не вижу.const add = async (req, res) => {
// destructure the request body
const { username, uid } = req.body;
// create vm via proxmox api
try {
await createVM(username, pveName, uid);
await controlVM("start", pveName, uid);
return res.status(200).json({
success: true,
});
} catch (e) {
errorLog("vmCont", "add", e.message, req, "error");
return res.status(500).json({
success: false,
error: e.message,
});
}
};
< /code>
Вот функция CreateVM: < /p>
const createVM = async (username, pveName, uid) => {
try {
const myConfig = {
url: `/api2/json/nodes/temppve/qemu/10000/clone`,
method: "post",
baseURL: `${process.env.PROXMOX_apiurl}`,
headers: {
Authorization: `PVEAPIToken=${process.env.PROXMOX_apikey}`,
"Content-Type": "application/json",
},
data: {
newid: uid,
description: `Server for ${username}`,
full: 1,
name: username,
storage: "local-lvm",
target: pveName,
},
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
};
await axios(myConfig);
return;
} catch (e) {
errorLog("proxmox", "createVM", e.message, false, "error");
throw new Error(e.message);
}
};
< /code>
ControlVM должен стрелять после создания виртуальной машины: < /p>
const controlVM = async (action, node, vmid) => {
let myConfig = {
method: "post",
maxBodyLength: Infinity,
baseURL: `${process.env.PROXMOX_apiurl}`,
url: `/api2/json/nodes/${node}/qemu/${vmid}/status/${action}`,
headers: {
Authorization: `PVEAPIToken=${process.env.PROXMOX_apikey}`,
},
data: "",
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
};
try {
await axios(myConfig);
return;
} catch (e) {
errorLog("proxmox", "controlVM", e.message, false, "error");
throw new Error(e.message);
}
};
Подробнее здесь: https://stackoverflow.com/questions/794 ... ot-waiting
Почему вложенная асинхромат/ожидание не ждет? ⇐ Javascript
Форум по Javascript
-
Anonymous
1740272433
Anonymous
Я прочитал много документов и смотрю кучу видео, и я просто не могу заставить это работать. Рабочий процесс - это: < /p>
Получить http -запрос < /li>
Запрос обрабатывается с помощью асинхронной функции. < /Li>
Эта функция должна вызвать еще две асинхронные функции в порядке SEQ. Но это не так ждать. Мой Линтер показывает мне, что сообщение «ожидание» не влияет на тип этого выражения ». как для CreateVM, так и для ControlVM. Я использую Nodejs/Express. Я просто опубликую скелет кода. Это должно быть что -то действительно простое, но я просто не вижу.const add = async (req, res) => {
// destructure the request body
const { username, uid } = req.body;
// create vm via proxmox api
try {
await createVM(username, pveName, uid);
await controlVM("start", pveName, uid);
return res.status(200).json({
success: true,
});
} catch (e) {
errorLog("vmCont", "add", e.message, req, "error");
return res.status(500).json({
success: false,
error: e.message,
});
}
};
< /code>
Вот функция CreateVM: < /p>
const createVM = async (username, pveName, uid) => {
try {
const myConfig = {
url: `/api2/json/nodes/temppve/qemu/10000/clone`,
method: "post",
baseURL: `${process.env.PROXMOX_apiurl}`,
headers: {
Authorization: `PVEAPIToken=${process.env.PROXMOX_apikey}`,
"Content-Type": "application/json",
},
data: {
newid: uid,
description: `Server for ${username}`,
full: 1,
name: username,
storage: "local-lvm",
target: pveName,
},
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
};
await axios(myConfig);
return;
} catch (e) {
errorLog("proxmox", "createVM", e.message, false, "error");
throw new Error(e.message);
}
};
< /code>
ControlVM должен стрелять после создания виртуальной машины: < /p>
const controlVM = async (action, node, vmid) => {
let myConfig = {
method: "post",
maxBodyLength: Infinity,
baseURL: `${process.env.PROXMOX_apiurl}`,
url: `/api2/json/nodes/${node}/qemu/${vmid}/status/${action}`,
headers: {
Authorization: `PVEAPIToken=${process.env.PROXMOX_apikey}`,
},
data: "",
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
};
try {
await axios(myConfig);
return;
} catch (e) {
errorLog("proxmox", "controlVM", e.message, false, "error");
throw new Error(e.message);
}
};
Подробнее здесь: [url]https://stackoverflow.com/questions/79460529/why-are-the-nested-async-await-is-not-waiting[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия