【发布时间】:2017-10-13 04:58:30
【问题描述】:
我实际上想将“读取”函数放在不同的模块中,然后在我的主 app.js 中使用它。 (我对使用 Promise 很陌生)
[修订]
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;
再次更新:
//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);
})
我该怎么做?我尝试过“return new promise ...”并将整个内容放在 getFile 函数中,但它没有返回任何内容。
我做错了什么?
【问题讨论】:
-
这里同样重要的是你如何使用承诺。调用导出承诺的代码在哪里。 (promise.then) 那里也不需要额外的。
-
实际上,我把那个多余的“then”去掉了,我本来打算用那个“then”来做别的事情,但我发帖的时候忘了把它去掉。我将粘贴修改后的代码。
标签: javascript node.js node-modules