Вам необходимо принять параметр и использовать его, а также вызвать нужную функцию:
getUserConnectRequestData().then((responseData) => {
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^^^^^^^^^^
getUserConnectResponseData(responseData);
// −^^^^^^^^^^^^^^^^^^^^^^^^^^−^^^^^^^^^^^^
});
Но поскольку getUserConnectResponseData
принимает только этот один параметр, вы знаете, что обратный вызов then
будет вызываться только с одним единственным аргументом:
getUserConnectRequestData().then(getUserConnectResponseData);
Вам также необходимо обрабатывать ошибки, поэтому:
getUserConnectRequestData()
.then(getUserConnectResponseData)
.catch(error => {
// Handle/report error
});
Есть еще пара вещей, на которые стоит обратить внимание:
getUserConnectRequestData
становится жертвой антишаблона обещаний: new Promise
вам не нужно, когда у вас уже есть обещание (от fetch
) использовать.
Вам необходимо проверить HTTP-успешность перед вызовом .json()
в ответе. К сожалению, fetch
отклоняет только ошибки сети , но не ошибки HTTP.
Вот обновленная версия getUserConnectRequestData
:
export const getUserConnectResponseData = (responseData) => {
return fetch('https://hghghgghghg3223223', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
Req_Type: responseData.Req_Type,
Language_Code: responseData.Language_Code,
User_ID: responseData.User_ID,
Session_ID: responseData.Session_ID,
Session_Key: responseData.Session_Key,
Client_Type: responseData.Client_Type,
Req_Data: {
Bridge_ID: responseData.Bridge_ID,
},
}),
})
.then((response) => {
if (!response.ok) {
throw new Error("HTTP error " + response.status);
}
return response.json();
});
};
Из-за этой необходимости в проверке я никогда не использую fetch
напрямую, у меня есть обертки для проверки, поэтому мне не нужно кодировать ее каждый раз.
// General purpose
function fetchGeneral(...args) {
return fetch(...args)
.then((response) => {
if (!response.ok) {
throw new Error("HTTP error " + response.status);
}
return response;
});
}
// JSON
function fetchJSON(...args) {
return fetch(...args)
.then((response) => {
if (!response.ok) {
throw new Error("HTTP error " + response.status);
}
return response.json();
});
}
Те отклоняют оба ошибки сети и HTTP.