Возвращать выборку, завернутую в Promise так же, как возвращающую выборку? - PullRequest
0 голосов
/ 30 апреля 2019

Фон

Я начал работать в компании, в которой не так много шаблонов, и я вижу возвращение вызовов fetch двумя способами. Один возвращает только вызов fetch, а другой возвращает fetch вызов, завернутый Promise с использованием resolve и reject, и это меня запутало.

Вопрос

делает это

const returnFetchWrappedByPromise = () => {
    return new Promise((resolve, reject) => {
        return fetch("url")
            .then(resolve(true))
            .catch(reject(false))
    })
}

Так же, как этот

const returnFetch = () => {
    return fetch("url")
        .then(() => true)
        .catch(() => false)
}

?

Если нет, то в чем разница?

Если да, какую мне использовать?

Замечание: Я использовал true и false только для того, чтобы привести пример, но на самом деле это какой-то результат и некоторая ошибка.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Новый объект Promise в функции returnFetchWrappedByPromise не требуется. fetch уже возвращает объект Promise (снимок экрана ниже). Вы должны использовать функцию returnFetch. Надеюсь, это поможет.

Console Screenshot

0 голосов
/ 30 апреля 2019

fetch по своей сути возвращает обещание, поэтому завершение его в new Promise не добавляет никакой функциональности.Использование async также ничего не добавляет в этом случае и фактически представляет случай анти-паттерна Promise конструктора .

Синтаксис второй функции является предпочтительным способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...