gpt4 book ai didi

javascript - 按顺序执行导入的 Javascript 函数

转载 作者:行者123 更新时间:2023-12-03 10:33:54 24 4
gpt4 key购买 nike

我想执行从我制作的另外 2 个 .js 文件导入的特定函数中的 2 个函数。首先需要完成的功能需要一些时间,第二个功能在第一个功能结束之前开始,我需要第一个功能创建的文件才能工作。我的 .js 基本上是这样的:

var pdfToPng = require("./pdfToPng.js");
var doStuffToPng = require("./doStufftoPng.js");

var pdfFilePath = process.argv[2];


var pngFilePath = pdftoPng.convert(PdfFilePath);//convert takes a path
//and makes a png and returns path
//to the png
doStuffToPng.doStuff(pngFilePath);
//I want "doStuff()" to start AFTER "convert()" is done.

我很确定它与回调有关,但我是一个 javascript 菜鸟,需要帮助。我可以让它与 setTimeout() 一起使用,但这对我来说似乎是“胶带修复”。有没有更优雅的方法?

编辑:一些很棒的人想要提供帮助并要求发布此 pdfToPng.js:

var spindrift= require('spindrift');//this is a node module
var fs = require('fs');

//Makes a png from pdf in pngFolder and returns the path to that png
exports.convert = function(path)
{
var pdf = spindrift(path);
var pathToPng = path.substring(0, path.length-4); //takes off the .pdf
pathToPng += "_out.png";

//this is spindrift's stuff, makes a png in dir pngFolder/pathToPng
pdf.pngStream(500).pipe(fs.createWriteStream("pngFolder/" + pathToPng));
return "pngFolder/" + pathToPng;
}

最佳答案

欢迎来到 JavaScript 的异步世界。虽然同步创建的函数回调是异步执行的。因此,只有在确定转换函数已执行后,您才必须修改代码才能执行 doStuff。您可以找到如何做到这一点@Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference

关于javascript - 按顺序执行导入的 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29090574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com