获取超时 - React Native

时间:2017-12-29 04:37:41

标签: javascript react-native ecmascript-6 fetch

我正在使用fetch从服务器获取数据。如果服务器没有响应,我无法为fetch设置超时。

我的全局fetchData类

fetchGetResp(url, token) {
    return fetch(url, {
        method: "GET",
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
        }
    })
    // .then(ApiUtils.checkStatus)
    .then(response =>
        response.json()
    )
    .then(responseJson => {
        return responseJson
    })
    .catch(error => {
        // console.log(error.headers._bodyText.status);
        console.log('touching undefined catch');
        return undefined;
    });
}

我正在访问fetchData的Javascript类

let resp = fetchData.fetchGetResp(restUrl, userToken);
resp.then(responseJson => {
    // console.log(res);
    if (responseJson != '' && responseJson != undefined) {

    }
    else {
        console.log(responseJson);
        try {
        }
        catch (error) {
            alert(error.message);
            console.log(error + 'from js file');
        }
    }

    //Some if statement
    else {
        alert('Unable to Process.please try again');
    }
})
.catch(error => {
    alert(error.message + "Please try again after sometime");
});

请根据我的上述方法告诉我们如何实施超时。

1 个答案:

答案 0 :(得分:0)

截至目前(2017年12月29日),Fetch不支持超时选项,但目前正在讨论(discussion link)

但是我们可以根据这些文档定义自己的包装器来实现它。 link1 link2

因此在你的情况下

{{1}}