#node.js #puppeteer #sharp
#node.js #кукольник #острый
Вопрос:
Я написал node.js программа, и она не заканчивается после того, как все сделано.
Я перепробовал все.
Ниже приведен мой код :
const log = require('why-is-node-running') // should be your first require const net = require('net') const puppeteer = require('puppeteer'); //const sharp = require("sharp"); const sharp = require("sharp"); async function tkscr() { const browser = await puppeteer.launch(); const page = await browser.newPage(); // set the size of the viewport, so our screenshot will have the desired size await page.setViewport({ width: 1920, height: 1080 }) await page.goto('https://www.google.com/', {waitUntil: 'load', timeout: 0}); await page.screenshot({ path: 'gg.jpeg' ,fullPage: true}); await browser.close(); } tkscr().then( res =gt; cropImage()) .catch(err =gt; console.log(err)); function cropImage() { try { sharp("gg.jpeg") .extract({ width: 770, height: 388, left: 552, top: 770 }) .toFile("sammy.jpeg", function(err) { console.log("process completed"); setTimeout(function () { log() // logs out active handles that are keeping node running }, 100) }); } catch (error) { console.log(error); } }
это приложение делает снимок экрана с помощью puppeteer, а затем использует sharp для обрезки снимка экрана
Я использую «почему работает узел»
У меня есть журнал ниже:
Я не знаю, что мне делать? пожалуйста, помогите мне
Спасибо
Комментарии:
1. При удалении
setTimeout
сlog
помощью программы для меня все просто отлично заканчивается..
Ответ №1:
Когда я тестирую программу, она заканчивается правильно. Удалите log()
его, и он просто остановится, как и ожидалось..
const log = require('why-is-node-running') // should be your first require const net = require('net') const puppeteer = require('puppeteer'); //const sharp = require("sharp"); const sharp = require("sharp"); async function tkscr() { const browser = await puppeteer.launch({}); const page = await browser.newPage(); // set the size of the viewport, so our screenshot will have the desired size await page.setViewport({ width: 1920, height: 1080 }) await page.goto('https://www.google.com/', { waitUntil: 'load', timeout: 0 }); await page.screenshot({ path: 'gg.jpeg', fullPage: true }); await browser.close(); } tkscr().then( res =gt; cropImage()) .catch(err =gt; console.log('catch err:', err)); async function cropImage() { try { sharp("gg.jpeg") .extract({ width: 770, height: 388, left: 552, top: 770 }) .toFile("sammy.jpeg", function (err) { console.log('everything done.') }) } catch (error) { console.log(error); } }
why-is-node-running
Модуль показывает мертвые дескрипторы, которые, возможно, еще не были «собраны» с тех пор, как узел решил сделать это позже, так что это более запутанно, чем что-то другое в этом сценарии.