Нет, вызываемая не асинхронна.
Попробую кратко процитировать код.
worker.js (так работает)
server.on('request', function (req, res) {
tmp.file({keep: true}, function _tempFileCreated(err, path, fd, cleanupCallback) {
console.log(path);
console.log(fd);
console.log(err);
let oS = fs.createWriteStream(null, {fd: fd});
//let oS = fs.createWriteStream(path);
req.pipe(oS);
});
return;
});
А если worker.js
const api = require('./api');
server.on('request', function (req, res) {
let api_return = api(requestedApiPath, req, config);
});
И при этом внутри api.js
module.exports = (requestedApiPath, req, cfg) => {
const tmp = require('tmp');
const fs = require('fs');
tmp.file({keep: true}, function _tempFileCreated(err, path, fd, cleanupCallback) {
console.log(path);
console.log(fd);
console.log(err);
let oS = fs.createWriteStream(null, {fd: fd});
//let oS = fs.createWriteStream(path);
req.pipe(oS);
});
return;
});
то так уже не работает.
Повторюсь - темп-файл создаётся, но его размер 0.