Promise包装的返回取回与返回取回相同吗?

时间:2019-04-29 21:49:30

标签: javascript promise

背景

我开始在一家没有很多模式的公司工作,我看到以两种方式返回fetch呼叫。一个仅返回fetch调用,另一个返回由fetch包装的Promise使用resolvereject的调用,这使我感到困惑。

问题

正在这样做

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)
}

如果没有,有什么区别?

如果是,我应该使用哪一个?

观察:我仅使用truefalse来举一个例子,但实际上是一些结果和一些错误。

2 个答案:

答案 0 :(得分:-1)

@array2 = { cup book 7, laptop charger 9} 本质上会返回一个承诺,因此将其包装在fetch中不会增加任何功能。在这种情况下,new Promise的使用也不添加任何内容,实际上代表了Promise constructor anti-pattern的情况。

第二种函数语法是首选方法。

答案 1 :(得分:-1)

不需要Promise函数中的新returnFetchWrappedByPromise对象。 fetch已返回Promise对象(下面的屏幕截图)。您应该使用returnFetch函数。希望有帮助。

Console Screenshot