Export module after promise completes
17,234
This is my code
read.js
var dir = require('node-dir');
var files = new Promise(function (resolve, reject) {
dir.files('../sample/sample.txt', function (err, res){
if (err) {
reject(err);
console.log('Oops, an error occured %s', err);
}
else {
resolve(res);
}
});
});
exports.files = files;
And then use it as such on the file that imports this module.
app.js
var read = require('read.js');
read.files.then(function(res) {
console.log(res);
});
Your revised code
read.js
var dir = require('node-dir');
var files = function(){
return new Promise(function (resolve, reject) {
dir.files('../sample/sample', function (err, res){
if (err) {
reject(err);
console.log('Oops, an error occured %s', err);
}
else {
resolve(res);
return res;
}
});
});
}
exports.files = files;
app.js
var read = require('read.js');
read.files().then(function(res) {
console.log(res);
});
Hope that helps.
Related videos on Youtube
Author by
Joe
Updated on September 15, 2022Comments
-
Joe over 1 year
I actually want to put the "read" function in a different module and then require it in my main app.js. (I'm quite new to using promises)
[REVISED]
var dir = require('node-dir'); var files = function getFiles(){ return new Promise(function (resolve, reject) { dir.files('../sample/sample', function (err, res){ if (err) { reject(err); console.log('Oops, an error occured %s', err); } else { resolve(res); return res; } }); }); } console.log(files); module.exports = files;
UPDATE AGAIN:
//read.js var dir = require('node-dir'); var Promise = require('promise'); module.exports = new Promise(function (resolve, reject) { dir.files('../sample/sample', function (error, results){ if (error) { reject(error); console.log('Oops, an error occured %s', err); } else { resolve(results); } }); }) //app.js var filelist = require('./read'); filelist.then(function (res){ console.log(res); })
How do I go about that? I've tried "return new promise..." and putting the whole thing in a getFile function, but it doesn't return anything.
What am I doing wrong?