Моя цель — сделать возможным присоединение обратных вызовов дескрипторов позже. Я не уверен, что код в моем решении решает эту проблему, потому что проблема может быть в другом месте из-за плохого кода (дизайна) или отсутствия базовых знаний. Моя первая версия классов Request и Response:
class Request {
make(url, params) {
let p = fetch(url, params)
.then(this.doThing)
.then(this.doAnotherThing);
return new Response(p);
}
// methods like doThing and doAnotherThing ...
}
class Response {
responsePromise;
constructor(p) {
this.responsePromise = p;
}
handle(success, failure) {
this.responsePromise.then(success, failure);
}
}
Пример использования
let r = Request();
r.make('/order/update', { method: 'POST', body: {} }).handle((resposne) => { }, (error) => { });
Но я хочу отлавливать ошибки внутри метода make, потому что иногда метод handle не может вовремя отловить ошибки из-за более позднего вызова.
Мое текущее решение — создать вспомогательные обратные вызовы и поместить их в обещание:
class Request {
make(url, params) {
let p = fetch(url, params)
.then(this.doThing)
.then(this.doAnotherThing)
.catch(this.errorHandler);
return new Response(p);
}
doAnotherThing(response) {
// some job
return () => Promise.resolve(response);
}
errorHandler(error) {
// some job
return () => Promise.reject(error);
}
}
class Response {
responsePromise;
constructor(p) {
this.responsePromise = p;
}
handle(success, failure) {
result = responsePromise.
this.responsePromise.then(f => f()).then(success, failure);
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... acks-later
Джс. Создавайте обещания и обрабатывайте ошибки, а затем прикрепляйте обратные вызовы обещаний. ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Преобразовать карту обещаний и вернуть обещание карты урегулированных обещаний
Anonymous » » в форуме Javascript - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-