Javascript 承诺不是';t在node.js上解析
目前我在node.js/Promises上遇到了很多问题。目前我正在做一些简单的事情,比如: module.jsJavascript 承诺不是';t在node.js上解析,javascript,node.js,asynchronous,promise,Javascript,Node.js,Asynchronous,Promise,目前我在node.js/Promises上遇到了很多问题。目前我正在做一些简单的事情,比如: module.js var fs = require('fs'); function myFunction() { var files = []; for (var i = 0; i < 100; ++i) { files.push(fs.writeFile("file-" + i + ".txt", "file" + i, "utf-8", function(
var fs = require('fs');
function myFunction() {
var files = [];
for (var i = 0; i < 100; ++i) {
files.push(fs.writeFile("file-" + i + ".txt", "file" + i, "utf-8", function(err) {
if (err)
throw err;
}));
}
Promise.all(files).then(function() {
return new Promise(function(resolve, reject) {
resolve('ok');
})
});
}
exports.myFunction = myFunction;
var test = require('./module.js');
test.myFunction().then(function(result) {
console.log(result);
})
然而,如果我运行main.js,我的输出是:
module.myFunction().then(function(result) {
^
TypeError: Cannot read property 'then' of undefined
我不知道为什么我的模块返回未定义的承诺。有人能帮我吗?我就是受不了这件事。多谢各位
而且,虽然
writeFile()
将文件写入file-0.txt等格式,但这些文件根本没有内容。您编写的代码有两个问题:
- 本机
不返回承诺fs.writeFile()
- 您的函数不返回承诺
var fsp = require('fs-promise');
function myFunction() {
var files = [];
for (var i = 0; i < 100; ++i) {
files.push( fsp.writeFile("file-" + i + ".txt", "file" + i, "utf-8" ) );
}
return Promise.all( files );
}
exports.myFunction = myFunction;
var fsp=require('fs-promise');
函数myFunction(){
var文件=[];
对于(变量i=0;i<100;++i){
files.push(fsp.writeFile(“file-“+i+”.txt”,“file”+i,“utf-8”);
}
返回承诺。所有(文件);
}
exports.myFunction=myFunction;
您的代码有两个问题:
- 本机
不返回承诺fs.writeFile()
- 您的函数不返回承诺
var fsp = require('fs-promise');
function myFunction() {
var files = [];
for (var i = 0; i < 100; ++i) {
files.push( fsp.writeFile("file-" + i + ".txt", "file" + i, "utf-8" ) );
}
return Promise.all( files );
}
exports.myFunction = myFunction;
var fsp=require('fs-promise');
函数myFunction(){
var文件=[];
对于(变量i=0;i<100;++i){
files.push(fsp.writeFile(“file-“+i+”.txt”,“file”+i,“utf-8”);
}
返回承诺。所有(文件);
}
exports.myFunction=myFunction;
您的函数不返回任何内容。fs.writeFile()
不会立即返回承诺。这不是承诺的问题,方法不返回anything@elclanrs@aarosil不myFunction()
以返回新承诺的方式返回新承诺(函数(解析,拒绝){resolve('ok');})
?@Since001没有,它没有。对then()
函数的回调会执行,但不会执行myFunction()
!您的函数不返回任何内容。fs.writeFile()
不返回承诺。这不是承诺的问题,方法不返回anything@elclanrs@aarosil不myFunction()
以返回新承诺的方式返回新承诺(函数(解析,拒绝){resolve('ok');})
?@Since001没有,它没有。对then()
函数的回调会执行,但不会执行myFunction()
!