等待承诺?

时间:2018-03-29 23:42:02

标签: javascript jquery

我的代码问题在于,当代码首次运行时,我尝试获取的dom元素并不总是存在,如果它不存在,则永远不会进行承诺。

在尝试获取承诺之前,我是否有可能等待承诺呢?

我希望我的最后一行代码等待,只有在我做出承诺时才会运行,这可能吗?

function identify_home(){           
    const ytd_home_page = $("ytd-browse.style-scope.ytd-page-manager")
    if (ytd_home_page.length){
        for (var i=0; i<ytd_home_page[0].children.length; i++){             
            if (ytd_home_page[i].attributes[0].value === "home"){
                return new Promise(res=>{
                    res(ytd_home_page[i])
                })

            }               
        }
    }                                   
}      

identify_home().then(res=>{
    console.log(res)
})

1 个答案:

答案 0 :(得分:1)

您需要从函数返回Promise。现在,您有条件地返回Promise或{{1}}。

编辑:我还不确定OP究竟在尝试做什么。在DOM查询中使用Promise没有任何意义。