Skip to content

Instantly share code, notes, and snippets.

@quanticle
Last active May 9, 2019 03:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save quanticle/ae616593115b91ec9a114ece90d4bbdb to your computer and use it in GitHub Desktop.
Save quanticle/ae616593115b91ec9a114ece90d4bbdb to your computer and use it in GitHub Desktop.
How do I wait for a promise to resolve?
browser.webNavigation.onBeforeNavigate.addListener(e => {
let originalUrl = e.url;
console.log("Original URL: " + originalUrl);
let replaceRe = /(.*)coolSite/(.*)/;
let newUrl = originalUrl.replace(replaceRe, "$1coolerSite$2");
async function checkUrl(){
try {
let response = await fetch(newUrl, {method: "HEAD"});
if(!response.ok){
console.log("Received status: " + response.status + " from cooler site");
newUrl = originalUrl;
}
}
catch(err) {
console.log("Received error: " + error.toString() + " from cooler site");
newUrl = originalUrl;
}
}
checkUrl();
browser.tabs.update(e.tabId, {url: newUrl});
});
@samcf
Copy link

samcf commented May 9, 2019

async function check(url) {
    try {
        const r = await window.fetch(url);
        if (!r.ok) {
            console.log("Response not OK")
        }

        console.log("Response OK")
    } catch (err) {
        console.log("Error" + err.toString())
    }
}

async function foo(url) {
    await check(url);
    console.log("Finished checking")
}

foo("https://gist.github.com/quanticle/ae616593115b91ec9a114ece90d4bbdb")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment