Может кто-нибудь объяснить мне, почему то, что я делаю, неправильно? Как правильно решить эту проблему?
У меня есть этот код для совершения сделки:
async function limitOrder(keys, symbol, type, quantity, price, waitResult) {
var client = await loadKeys(keys);
return new Promise((resolve, reject) => {
client.newOrder({
symbol: symbol,
side: type, //BUY OR SELL
type: 'LIMIT',
quantity: quantity,
price: price,
timeInForce: "GTC",
newOrderRespType: 'RESULT'
}).then(async (response) => {
console.log(response);
resolve({order: response, price: response.price, quantity: response.origQty}); //return back the order ID
}
}).catch((err) => {
console.log(err); //print error if any
reject(err);
});
});
}
Так я впервые написал свою функцию Promise, и в строке reject(err)
появляется ошибка. Таким образом, если ордер выполняется правильно, resolve()
возвращает ордер в функцию, которая его вызывает. Но если он достигает блока catch, выдается ошибка. Однако строка reject
выдает мне эту ошибку:
UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
Что я хочу сделать, это вернуть ошибку и обработать ее в другой функции (которая вызывает эту функцию).