function getCsrfToken() { var promise = new Promise(function (resolve, reject) { var i = 0; var waitingOnCSRF = setInterval(function () { var metaTag = document.querySelector("meta[name='csrf-token']"); i++; if (metaTag) { clearInterval(waitingOnCSRF); var authToken = metaTag.getAttribute("content"); return resolve(authToken); } else if (i === 1000) { clearInterval(waitingOnCSRF); var airbrake = new airbrakeJs.Client({projectId: 1, projectKey: '<%=ApplicationConfig["AIRBRAKE_API_KEY"]%>'}); airbrake.addFilter(function(notice) { notice.context.environment = "<%= Rails.env %>"; return notice; }); airbrake.notify("Could no locate CSRF metatag" + JSON.stringify(localStorage.current_user)); return reject("Could not locate CSRF meta tag on the page."); } }, 5); }); return promise; }