如何在Promise的.then()函数中检查条件

时间:2019-02-27 08:18:35

标签: javascript reactjs ecmascript-6 ecmascript-5

我正在尝试检查api调用的结果是否返回任何内容,并基于此结果执行其他一些操作,但是以下代码始终经过process_result()函数,即使结果为空对象,任何人都可以看到我在做什么错了,

RemoteApi.api_request(server, method, url, data)
    .then(result => {
        debug("result from API request: ", result)
        debug("data from API request: ", data)
        if (result !== {}) {
            debug("in process result now")
            process_result(result, label, model, dispatchOptions)
                .then(body => {
                    onSuccess(body)
                })
                .catch(error => {
                    onFailure(error)
                })
        } else {
            debug("outside process result now")
        }
    })
    .catch(error => onFailure(error))

1 个答案:

答案 0 :(得分:0)

通常,返回2XX结果的远程请求将进入您的then()函数。一旦有了它的原始的旧JavaScript。

如果要确保结果是对象,可以检查类型:

if (typeof result === 'object') {
  // success
}

如果您不关心结果的内容,但是想要检查数据是否存在,则可以检查其是否真实:

if (result) {
  // success
}

远程结果永远不会是{}的相同实例,因此您的结果过程将始终是真实的。