我尝试在javascript中创建一个while循环。我有自己的例子';我试着在身体里做些什么 const条件=true; while(condition)condition=checkCondition(); 函数checkCondition(){ (异步()=>{ 如果(等待页面。$('condition')!==null){//满足条件 返回true; }否则{//条件不满足 返回false; } })(); }

我尝试在javascript中创建一个while循环。我有自己的例子';我试着在身体里做些什么 const条件=true; while(condition)condition=checkCondition(); 函数checkCondition(){ (异步()=>{ 如果(等待页面。$('condition')!==null){//满足条件 返回true; }否则{//条件不满足 返回false; } })(); },javascript,while-loop,Javascript,While Loop,我不确定我是否做对了。请有人给我指路。有关详细信息,请查看: prime的回答会让你更接近,并提供一些有用的材料供你阅读。我想我会在它的基础上,修正一些问题并添加更多的解释 下面是代码的工作演示 (异步函数(){ 让条件=真; while(condition)condition=等待checkCondition(); })() 异步函数checkCondition(){ log('调用了checkCondition'); 如果(wait someasynchlogic()!==null){//

我不确定我是否做对了。请有人给我指路。

有关详细信息,请查看:


prime的回答会让你更接近,并提供一些有用的材料供你阅读。我想我会在它的基础上,修正一些问题并添加更多的解释

下面是代码的工作演示

(异步函数(){
让条件=真;
while(condition)condition=等待checkCondition();
})()
异步函数checkCondition(){
log('调用了checkCondition');
如果(wait someasynchlogic()!==null){//条件满足
返回true;
}否则{//条件不满足
返回false;
}
}
异步函数someAsyncLogic(){
返回Math.random()>0.2?true:null;

}
async
函数仍然返回承诺
await
只影响
async
函数,而不影响调用它的函数。这是实际函数的一个非常精简的版本。我希望能够一次又一次地循环该函数,直到它返回false。还要添加wait before checkCondition()<代码>while(条件)条件=等待检查条件()。如有必要,可以将该部分放入异步IIFE。此外,您不能将条件声明为const,然后对其进行更改。改为使用let there。@ScottyJamison
const
问题已从OP中复制过来。
const condition = true;
while (condition) condition = checkCondition();

async function checkCondition() {
   if (await page.$('condition') !== null){ // condition met
        return true;
   } else { // condition not met
        return false;
   }
}