js 약속을 사용하여 값을 데이터베이스에 저장 한 후 페이지를 새로 고침하고 싶습니다.다른 약속이 약속을 사용하여 완료된 후에 Javascript 기능을 실행하는 방법은 무엇입니까?
내 코드는 jQuery를 이벤트 리스너 내부에 싸여있다 :
$("img[class=okButton]").click(function(){
var field_userid = $(this).attr("id");
doThisFirst();
// then make a promise
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
wait(500).then(() => writeNewRoom(field_userid)); // function to write to database
refreshPage(); // after write has finished
});
///////////////////
function writeNewRoom(field_userid)){
// ajax to do something;
}
///////////////////
function refreshPage(){
if(window.confirm("Click to refresh")){location = location}
}
의도 된 행동이 후, 처음으로 데이터를 처리합니다 (refreshPage에서 페이지를 새로 고침하기 전에)합니다 (writeNewRoom에서 "일을"기능을 종료하는 것입니다) 기능.
실제로는 첫 번째 doThisFirst() 함수가 올바르게 처리되지만 세 번째 함수의 window.confirm 상자는 writeNewRoom 함수가 실행되기 전에 팝업됩니다.
나는 전에 약속을 한 번도 사용하지 않았으므로 누구든지 잘못 된 것을 알아낼 수 있습니까? mozilla 웹 사이트에서 기본 구문을 사용했습니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
모든 도움을 주시면 감사하겠습니다.
'.then' 콜백 내부에서 수행합니까? – jonrsharpe
[promise chaining] (https://javascript.info/promise-chaining#returning-promises) 도움이 될까요? – evolutionxbox