木偶操纵者通过回调评估功能
puppeteer evaluate functional with callback
我正在尝试使用 puppeteer 评估函数,但回调从未触发(我确定主机页面按预期工作)。
在主机页面上,侦听器的工作方式如下:
DB.when('ready').execute(function(db){
// DB can execute stuff
})
我的人偶代码试图获取准备好的数据库:
try {
const dbhandle = await page.evaluate('DB.when("ready")');
const result = await page.evaluate(db => db.execute, function(images) {
console.log(JSON.stringify(images));
//do stuff with callback
}, dbhandle);
console.log('result', JSON.stringify(result));
} catch (e) {
console.log('evaluate', e);
} finally {
console.log('finally');
}
我运气不好。
天啊我想通了...
try {
function fooBugger() {
return new Promise((resolve, reject) => {
DB.when('ready').execute(function(db) {
if (db) {
resolve(db.some_data);
} else {
reject('nope');
}
});
});
}
const res = await page.evaluate(fooBugger);
console.log('resultHandle', JSON.stringify(res));
} catch (e) {
console.log('evaluateHandle', e);
} finally {
}
我正在尝试使用 puppeteer 评估函数,但回调从未触发(我确定主机页面按预期工作)。
在主机页面上,侦听器的工作方式如下:
DB.when('ready').execute(function(db){
// DB can execute stuff
})
我的人偶代码试图获取准备好的数据库:
try {
const dbhandle = await page.evaluate('DB.when("ready")');
const result = await page.evaluate(db => db.execute, function(images) {
console.log(JSON.stringify(images));
//do stuff with callback
}, dbhandle);
console.log('result', JSON.stringify(result));
} catch (e) {
console.log('evaluate', e);
} finally {
console.log('finally');
}
我运气不好。
天啊我想通了...
try {
function fooBugger() {
return new Promise((resolve, reject) => {
DB.when('ready').execute(function(db) {
if (db) {
resolve(db.some_data);
} else {
reject('nope');
}
});
});
}
const res = await page.evaluate(fooBugger);
console.log('resultHandle', JSON.stringify(res));
} catch (e) {
console.log('evaluateHandle', e);
} finally {
}