当我filemanager
对目录(/
)使用函数时,代码工作良好,但是当我调用文件(/index.html
)时,代码返回错误。
我在if /
else语句中看到了这个问题(readdir
即使isDir
返回也可以运行false
),但是我不知道如何在promises中正确使用它。
var fs = require('fs'),
Q = require('q'),
readdir = Q.denodeify(fs.readdir),
readFile = Q.denodeify(fs.readFile);
function isDir(path) {
return Q.nfcall(fs.stat, __dirname + path)
.then(function (stats) {
if (stats.isDirectory()) {
return true;
} else {
return false;
}
});
}
function filemanager(path) {
if (isDir(path)) {
return readdir(__dirname + path)
.then(function (files) {
return files.map(function (file) {
return ...;
});
})
.then(Q.all);
} else {
return readFile(__dirname + path, 'utf-8')
.then(function (content) {
return ...;
});
}
}
filemanager('/').done(
function (data) {
...
},
function (err) {
...
}
);
isDir
返回一个承诺,这始终是一个真实的价值。您需要将条件放入then
回调中才能访问布尔值:
function isDir(path) {
return Q.nfcall(fs.stat, __dirname + path)
.then(function (stats) {
return stats.isDirectory()
});
}
function filemanager(path) {
return isDir(path).then(function(isDir) {
if (isDir) {
return readdir(__dirname + path)
.then(function (files) {
return files.map(function (file) {
return ...;
});
})
.then(Q.all);
} else {
return readFile(__dirname + path, 'utf-8')
.then(function (content) {
return ...;
});
}
});
}
Swift 条件语句 一个 if 语句 后可跟一个可选的 else if...else 语句,else if...else 语句 在测试多个条件语句时是非常有用的。 当你使用 if , else if , else 语句时需要注意以下几点: if 语句后可以有 0 个或 1 个 else,但是如果 有 else if 语句,else 语句需要在 else if 语句之后。 if 语句后可以有 0
else语句可以与if语句结合使用。 else语句包含else语句中的条件表达式解析为0或FALSE值时执行的代码块。 else语句是一个可选语句, else后面最多只能有一个else语句。 语法 (Syntax) if...else语句的语法是 - if expression: statement(s) else: statement(s) 流程图 (Flow Diagram) 例
着色器语言GLSL中关于if语句、for语句的使用,和javascript语言、C语言中的if语句、for语句执行逻辑规则基本一致,这里默认你已经有一定的编程基础,也就不做过多讲解,只是简单说明一下。 单独使用if if(x>100){ gl_FragColor = vec4(1.0,0.0,0.0,1.0);//红色 } if-else形式 bool colorBool; // 根据布尔值
我得到了3个不同的错误:标识符预期,意外的令牌,未知的类:'score'。这些错误在第57-69行。 这个代码的重点是检查一个检查列表是否被检查,如果是,加1得分。它根据得分将输出文本更改为不同的字符串。 ^^XML代码^^
否则......如果梯形图可用于测试多个条件。 以下是相同的语法。 if (boolean_expression1) { //statements if the expression1 evaluates to true } else if (boolean_expression2) { //statements if the expression2 evaluates to t
主要内容:if 语句,实例,if...else 语句,实例,if...else if...else 语句,实例,if...else 嵌套语句,实例Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: if 语句 if 语句有布尔表达式及之后的语句块组成。 语法 if 语句的语法格式如下: 如果布尔表达式为 true 则执行大括号内的语句块,否则跳过大括号内的语句块,执行大括号之后的语句块。 实