私は、コールバック関数NotInDatabase()を渡し、isValidEmail関数を実行する次のイベントリスナーを構築しました。このコールバック関数は、ajax呼び出しの完了後にのみ実行するようにスケジュールされています。 NotInDatabase()はすぐに実行されますが、表示されます。なぜこれが起こっているのだろうか?最初に実行されるjavascript es6コールバック
イベントリスナー:あなたはisValidEmail
にコールバックとしてNotInDatabase
関数を渡すが、それが返すものを渡すことはありません。ここ
const isValidEmail = (url, data, success) => {
const xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xhr.open('POST', url);
xhr.onreadystatechange = function() {
if (xhr.readyState>3 && xhr.status==200) {
success(xhr.responseText);
}
};
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded', 'Access-Control-Allow-Origin');
xhr.send(data);
return xhr;
}
https://quirksmode.org/js/events_tradmod.html#link2 – Bergi