我的代码问题在于,当代码首次运行时,我尝试获取的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)
})
答案 0 :(得分:1)
您需要从函数返回Promise。现在,您有条件地返回Promise
或{{1}}。
编辑:我还不确定OP究竟在尝试做什么。在DOM查询中使用Promise没有任何意义。