我正在呼叫网络服务
这是我的代码:
var result;
export function callPostApi(urlStr, params)
{
fetch(urlStr, {method: "POST", headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(params)})
.then((response) => response.json())
.then((responseData) => {
result = JSON.stringify(responseData)
})
.catch((error) => { console.error(error);
Alert.alert('Alert Title failure' + JSON.stringify(error))
})
.done();
return result
}
我在这里打电话:
callapi(){
var dict = {
email: 'at@gmail.com',
password: '123456',
}
result = callPostApi('http://demo.com', dict)
}
目前,我们正在调用我们想要的异步模式,但是在调用上述方法后立即执行代码编写代码
我希望在收到服务器的结果后进行回调,以便我可以执行以下方法编写的代码,并在收到服务器的响应后执行。
答案 0 :(得分:2)
你需要使用Promises。
更改您的callPostApi
功能以返回承诺,然后您可以将其他then
,catch
和finally
电话联系起来。
export function callPostApi(urlStr, params) {
return fetch(urlStr, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(params)
})
.then((response) => response.json())
.then((responseData) => {
result = JSON.stringify(responseData)
})
.catch((error) => {
console.error(error);
Alert.alert('Alert Title failure' + JSON.stringify(error))
});
}
callapi() {
callPostApi('http://demo.com', {
email: 'at@gmail.com',
password: '123456',
})
.then((response) => {
// Continue your code here...
});
}