1
私は次の問題があります: 私は奇妙な部分を含む人形のページ評価をしています。私は非同期部分から人形に値を戻したいが、それはプロミスが解決するのを待つことなく、未定義に戻るだけである。問題を解決する方法は誰ですか?ページ評価からの返り値(puppeteer、asnyc programming)
私のサンプルコード:
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