Я пытаюсь создать функцию JavaScript/машинописного текста, которая заверяет обещание, возвращая новое обещание, добавляя попытку catch и обратный вызов для пользователя, чтобы написать код. Это понятие:Обложка TypeScript и Promise с Async/Await. Как привязать устаревший код?
function XPromise(code) {
return new Promise((resolve, reject) => {
try {
resolve(code());
} catch (exception) {
reject(exception);
}
});
}
Но как бы я использовать фрагмент кода выше в чем-то вроде этого:
async function GetData(testClient, project, testPlan, suiteId) {
return XPromise(code => {
console.debug("GetData");
testClient.getData(project, testPlan, suiteId)
.then(data => {
if (data.length === 0) reject(data);
resolve(data);
});
}
Наследство код использует .then построить что идеальное место, чтобы положить отвергаем и решить, но для этого не существует никакой функции.
Если я это сделать:
function XPromise(code, resolve, reject) {
return new Promise((resolve, reject) => {
try {
resolve(code());
} catch (exception) {
reject(exception);
}
});
}
async function GetData(testClient, project, testPlan, suiteId) {
return XPromise(code => {
console.debug("GetData");
testClient.getData(project, testPlan, suiteId)
.then(data => {
if (data.length === 0) reject(data);
resolve(data);
});
},
resolve => { },
reject => { }
}
Я не знаю, как получить то логику, чтобы сделать это дело в «низших» функций.
Причина, по которой я хочу новую обертку Promise, заключается в том, что у меня есть тонна этих вещей для реализации ... Я не хочу делать это во всем коде. Этот код компилируется, но мне требуется написать команды «Новые обещания» и «Попробовать вылов» для каждой реализуемой мной функции.
async function GetData(testClient, project, testPlan, suiteId) {
return new Promise((resolve, reject) => {
console.debug("GetPoints");
try {
testClient.getData(project, testPlan, suiteId)
.then(data => {
if (data.length === 0) reject(data);
resolve(data);
});
} catch (exception) { reject(exception); }
});
}