我需要制作函式syncCalltest,它依次呼叫axios函式。
有沒有辦法讓syncCallTest函式在不修改getPost1 getPost2和getPost3的情況下按順序運行?
function syncCallTest() {
conole.log('before getPost');
getPost();
conole.log('after getPost and before getPost2');
getPost2();
conole.log('after getPost2 and before getPost3');
getPost3();
conole.log('after getPost3');
}
function getPost() {
axios get("http://example.com/posts/12345/")
.then(reponse => {
console.log(response);
})
.catch(error => {
console.error(error);
})
}
function getPost2() {
axios get("http://example.com/posts/12345/")
.then(reponse => {
console.log(response);
})
.catch(error => {
console.error(error);
})
}
function getPost3() {
axios get("http://example.com/posts/12345/")
.then(reponse => {
console.log(response);
})
.catch(error => {
console.error(error);
})
}
uj5u.com熱心網友回復:
由于您的電話是 Promise,因此我認為您無法進行同步。
但似乎您需要的是按順序進行通話,這很容易;)
更改 postX 方法,以便它們回傳它們的承諾,然后級聯承諾
function syncCallTest() {
getPost()
.then(getPost2)
.then(getPost3);
}
function getPost() {
return axios.get("http://example.com/posts/12345/")
.then(reponse => {
console.log(response);
})
.catch(error => {
console.error(error);
})
}
function getPost2() {
return axios.get("http://example.com/posts/12345/")
.then(reponse => {
console.log(response);
})
.catch(error => {
console.error(error);
})
}
function getPost3() {
return axios.get("http://example.com/posts/12345/")
.then(reponse => {
console.log(response);
})
.catch(error => {
console.error(error);
})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453709.html
標籤:javascript 异步 异步等待 axios
上一篇:在撰寫器步驟中使用異步呼叫時如何確保Spring批處理作業完成
下一篇:異步任務完成后如何呼叫函式?
