出于某种原因,我在下面写的代码(我正在制作的POST路线)并没有完全按照我的想法工作。
app.post("/", function (req, res, error) {
var message = "";
tableSvc.createTable("tableName", function (error, result,response){
if (error)
message += "There was an error in creating this table";
else
message += "Table created succesfully";
});
console.log(message);
});
上面的代码只打印出一个空字符串,而不是打印"There was an error..."
或"Table created..."
我知道正在执行回调函数,因为如果我将console.log(message)
置于回调函数内,则上述两个字符串中的任何一个都会打印到控制台。
我是Javascript和call-functions的新手,为什么我的代码没有按照我的意图执行呢?
答案 0 :(得分:0)
删除了我的猜测 - 错过了关于正在执行的回调的观点 - 这可能是其他回复提供的异步问题。
答案 1 :(得分:0)
我认为变量消息的范围是这里的问题。我没有试过这个但可能有用。
app.post("/", function (req, res, error) {
var obj = this;
obj.message = '';
tableSvc.createTable("tableName", function (error, result,response){
if (error)
obj.message += "There was an error in creating this table";
else
obj.message += "Table created succesfully";
});
while(obj.message.length===0){
;//Block the next execution till the operation above is complete.
}
console.log(obj.message);
});