简体   繁体   English

Async function await 后不触发代码

[英]Async function does not trigger the code after await

As you can see in the code snippet below, the code is not executed after await.正如您在下面的代码片段中所看到的,代码在 await 之后并没有执行。 How can you fix this, what am I doing wrong?你怎么能解决这个问题,我做错了什么?

 let allProducts = [{"id": 1},{"id": 2},{"id": 3},{"id": 4},{"id": 5},] function setCurrentProduct(id) { return new Promise(resolve => { for (const product of allProducts) { if (product.id == id) { // localStorage.setItem('currentProduct', JSON.stringify(product)); document.querySelector("#localStorage").innerHTML = "Local Storage Done" } }; }); } async function productDetail(id) { try { await setCurrentProduct(id); document.querySelector("#check").innerHTML = "Done" } catch (error) { console.log(error) } } (function () { productDetail(4); })();
 <span id="check"></span> <span id="localStorage"></span>

you have to resolve it:你必须解决它:

return new Promise(resolve => {
        for (const product of allProducts) {
            if (product.id == id) {
                // localStorage.setItem('currentProduct', JSON.stringify(product));
                document.querySelector("#localStorage").innerHTML = "Local Storage Done"
                resolve()
            }
        };
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM