我编写的代码看起来像:
function getStuffDone(param) { | function getStuffDone(param) {
var d = Q.defer(); /* or $q.defer */ | return new Promise(function(resolve, reject) {
// or = new $.Deferred() etc. | // using a promise constructor
myPromiseFn(param+1) | myPromiseFn(param+1)
.then(function(val) { /* or .done */ | .then(function(val) {
d.resolve(val); | resolve(val);
}).catch(function(err) { /* .fail */ | }).catch(function(err) {
d.reject(err); | reject(err);
}); | });
return d.promise; /* or promise() */ | });
} | }
Run Code Online (Sandbox Code Playgroud)
有人告诉我这个被称为" 延迟反模式 "或" Promise构造函数反模式 ",这个代码有什么不好,为什么这被称为 …
两者之间有什么区别吗?
obj = {'foo': 'bar'}
Run Code Online (Sandbox Code Playgroud)
和
obj = {foo: 'bar'}
Run Code Online (Sandbox Code Playgroud)
我注意到-当我不使用引号时你不能在密钥中使用.但它真的有所作为吗?如果是的话,哪个?
我正在通过网页创建PDF。
我正在处理的应用程序是单页应用程序。
我在https://github.com/GoogleChrome/puppeteer/issues/1412上尝试了许多选项和建议
但这不起作用
const browser = await puppeteer.launch({
executablePath: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
ignoreHTTPSErrors: true,
headless: true,
devtools: false,
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
await page.goto(fullUrl, {
waitUntil: 'networkidle2'
});
await page.type('#username', 'scott');
await page.type('#password', 'tiger');
await page.click('#Login_Button');
await page.waitFor(2000);
await page.pdf({
path: outputFileName,
displayHeaderFooter: true,
headerTemplate: '',
footerTemplate: '',
printBackground: true,
format: 'A4'
});
Run Code Online (Sandbox Code Playgroud)
我要的是在页面完全加载后立即生成PDF报告。
我不想写任何类型的延迟,即await page.waitFor(2000);
我无法使用waitForSelector,因为该页面具有在计算后呈现的图表。
帮助将不胜感激。
使用 puppeteer观看了这个youtube 视频后,我受到了启发,想玩玩它。但我似乎错误地选择了一个网站作为启动项目。
const puppeteer = require('puppeteer')
;(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('http://www.produktresume.dk/AppBuilder/search?page=0')
page.once('load', () => {
const drugs = page
.evaluate(() =>
[...document.querySelectorAll('div.entity-link')].map(item => item)
)
.catch(err => console.log(err))
console.log(drugs[0])
})
await browser.close()
})()
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索并忘记了我尝试过的不同事物。
我对我的问题的看法是我没有在正确的时间调用评估 - 当页面加载时。
javascript ×3
puppeteer ×2
bluebird ×1
ecmascript-6 ×1
es6-promise ×1
node.js ×1
promise ×1
q ×1