Я программирую новое обещание, оно имеет множество различных условий, которые вызывают reject()
или resolve()
, связанные с их состоянием, также я знаю, что состояние обещания будет установлено с первого вызова reject()
| resolve()
. Мой вопрос: Есть ли какой-нибудь родной (встроенный) способ получить состояние обещания? Ниже демонстративный-код:Как проверить это состояние обещания при программировании нового обещания? js
exports.addStatement = function (db, description, data) {
return new Promise(function (resolve, reject) {
validator.validateStatement(description, data)
.then(function (data) {
//......
if(cnd1)
resolve(res);
if(cnd2)
reject(err);
//......
//How to check if this promise is rejected or resolved yet?
})
.catch(function (err) {
reject(err);
})
})
};
Это не то, как обещают работу. Похоже, вы пропустили всю концепцию обещаний. Вы можете использовать 'then()' и 'catch()', только после того, как обещание было возвращено из функции – Roysh
новое состояние Promise связано с внутренним обещанием, оно работает. –
Два замечания. Почему бы вам просто не использовать 'if() {} else if() {} else {}' или просто 'return resolve();'? Таким образом, нет необходимости знать состояние обещаний вообще, и ваш код становится чище. И второе: почему вам даже нужно «новое обещание», когда 'validator.validateStatement' уже возвращает обещание? – str