1
다음과 같은 문제가 있습니다 : 나는 asnychronous 부품을 포함한 인형극에서 페이지 평가를 받았습니다. 비동기 부분에서 인형극으로 값을 반환하고 싶지만 약속이 해결 될 때까지 기다리지 않고 정의되지 않은 값을 반환합니다. 아무도 문제를 해결하는 방법이 있습니까?페이지 평가에서의 반환 값 (puppeteer, asnyc 프로그래밍)
내 샘플 코드 :
const puppeteer = require('puppeteer');
async function testing(num) {
const browser = await puppeteer.launch({
headless: false,
ignoreHTTPSErrors: true
});
const page = await browser.newPage();
const evaluating = await page.evaluate((num) => {
//some synchrnous stuff (declaring some variablesand so on...)
function lookForNumber(num) {
if (num > 2) {
var asyncstuff = setTimeout(function() {
if (num > 10) {
console.log('number is greater than 9');
var whatIwantToRetrun = 'ten';
return Promise.resolve(whatIwantToRetrun);
//return here
}
if (num > 5 && num < 10) {
console.log('number is samller than 10');
var whatIwantToRetrun = 'nine';
return Promise.resolve(whatIwantToRetrun);
//return here
}
else {
num++;
lookForNumber(num)
}
}, 2000);
}
}
lookForNumber(num)
}, num)
console.log(evaluating); // returns undefined before function has finished
}
testing(4)
인형극 예 : 평가 인 경우 this link 업데이트 된 API에 따르면
const result = await page.evaluate(() => {
return Promise.resolve(8 * 7);
});
console.log(result); // prints "56"
이
, 인형 항상 코드를 평가하고, 약속, 약속을 기다리고 해결하고 약속 값을 반환합니다.
미리 도움을 청하십시오!
편집 : 알아 냈습니다!
. 그리고 자신의 질문에 대답 한 다음 대답으로 표시하면됩니다. –
완료! (10 자) – Noah