相关疑难解决方法(0)

什么是明确的承诺构建反模式,我该如何避免它?

我编写的代码看起来像:

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构造函数反模式 ",这个代码有什么不好,为什么这被称为 …

javascript promise q bluebird es6-promise

479
推荐指数
3
解决办法
7万
查看次数

带引号和没有引号的对象键之间有什么区别?

两者之间有什么区别吗?

obj = {'foo': 'bar'} 
Run Code Online (Sandbox Code Playgroud)

obj = {foo: 'bar'}
Run Code Online (Sandbox Code Playgroud)

我注意到-当我不使用引号时你不能在密钥中使用.但它真的有所作为吗?如果是的话,哪个?

javascript

201
推荐指数
3
解决办法
5万
查看次数

木偶等待页面完全加载

我正在通过网页创建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,因为该页面具有在计算后呈现的图表。

帮助将不胜感激。

pdf-generation google-chrome-headless puppeteer

4
推荐指数
9
解决办法
2万
查看次数

JS Puppeteer 等待页面加载完成

使用 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 node.js ecmascript-6 puppeteer

3
推荐指数
1
解决办法
8845
查看次数