다음 코드는 정상적으로 작동합니다. 그러나 함수의 중간에있는 Promise 코드 (주석으로 표시)를 비동기 코드로 변경하고 for 루프를 map()으로 바꿔야합니다. 어떻게하면 좋을까요?약속 코드를 비동기 코드로 바꾸기 JavaScript의 map()을 사용하는 For 루프
const main = async() => {
try{
const driver = await new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.setLoggingPrefs(prefs)
.forBrowser('chrome')
.setChromeOptions(options)
.build();
// Start promise code
await driver.findElements(By.css('input'))
.then(function(elements){
for(let i=0; i<elements.length; i++){
elements[i].getAttribute("value")
.then(function(val){
console.log(val);
});
}
})
.catch(function(error){
console.log(error);
});
// End promise code
await driver.quit();
} catch (error) {
console.log(error);
}
};
main();
약속 당신이를 변경하려면, 당신은 이미 await를/비동기를 사용하고 ... 비동기 async/await ...를 사용하는 코드 ... 내 인생에서 당신이하고 싶은 것이 무엇인지 짐작할 수는 없다. –
'elements [i] .getAttribute ("value"). 그럼 우물쭈물하다. ! 나는 그것들을'요소'라고 생각한다 ** DOM 요소의 배열이 아니다 –
@JaromandaX 코드는 셀렌 코드이다. 나는 그것에 대해 아무것도 모른다는 것이 아니라 실제로'요소 '가 WebAPI의'Element'인지는 의심 스럽다. 이 메소드가 약속을 반환하는 곳을 찾을 수는 없지만 ... – Kaiido