阅读之前:对不起我的英语水平。
var match = matchPromise != undefined ? matchPromise.then(ret_val =>
{
return ret_val;
})
: false;
if (match) {
//continue here after Promise response
}
我的问题是,如何在进入if
之前等待?因为每次match == false
match
,true
如果有答案的话,from bs4 import BeautifulSoup
source_code = """<span class="UserName"><a href="#">Martin Elias</a></span>"""
soup = BeautifulSoup(source_code, HTML.parser)
就可以C:\Windows\Fonts
。
我希望你能理解我的问题。
感谢。
答案 0 :(得分:0)
您正在寻找
(matchPromise != null
? matchPromise
: Promise.resolve(false)
).then(match => {
// continue here after Promise response
});
请注意,如果不使代码不同步,就不能等待任何事情。
答案 1 :(得分:-2)
您可以在Promise.resolve
中包含可能的承诺并在其上使用.then
Promise.resolve(matchPromise).then(
match=>{
if(match){...
}
)
澄清:您无法以同步方式阅读承诺,您承诺的唯一选择是使用.then
或async/await
。有一种方法可以将同步值(在您的情况下为undefined
)转换为具有Promise.resolve
的承诺(在您的情况下是未定义的承诺)。
所以现在,如果matchPromise
是一个承诺,那就不再重要了,因为你确定它是,然后在.then
中处理它,它将为你提供已解析的值或{{ 1}}价值,无论哪种方式; if语句的结果是一样的。