我尝试在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。@ScottyJamisonconst
问题已从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;
}
}