gpt4 book ai didi

javascript - 如何调试这个nodejs代码?

转载 作者:行者123 更新时间:2023-11-29 22:24:30 24 4
gpt4 key购买 nike

我正在尝试使用 Node 学习“q”库。

$ node -v // -> v0.6.6

我正在使用来自 https://github.com/kriskowal/q/blob/master/q.js 的最新 q.js现在。我将代码复制到 q.js 文件中,该文件是我的 testq.js 文件的同级文件。

testq.js的代码是:

function step1(callback) { console.log("step1"); callback("abc"); };

var Q = require("./q");

Q.fcall(step1).end();

当我运行它时:

node testq.js

报告:

E:\WORKSPACE_NODE\TestNodeJs\q>node testq.js
step1

node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: undefined is not a function
at step1 (E:\WORKSPACE_NODE\TestNodeJs\q\testq.js:1:112)
at makePromise.<anonymous> (E:\WORKSPACE_NODE\TestNodeJs\q\q.js:541:27)
at makePromise.promiseSend (E:\WORKSPACE_NODE\TestNodeJs\q\q.js:325:41)
at Array.0 (E:\WORKSPACE_NODE\TestNodeJs\q\q.js:787:28)
at EventEmitter._tickCallback (node.js:192:40)

我安装了 v8 debugger plugin for eclipse ,逐行调试。不幸的是,我找不到错误的开始。

我是nodejs的新手,请帮我调试一下。例如。我应该使用什么工具?或者我应该尝试任何其他有用的方法?


更新

根据霍根的回答,代码:

function step1(callback) { console.log("step1"); };

var Q = require("./q");

Q.fcall(step1).end();

可以成功运行,没有任何错误。

但是当我尝试时:

function step1(callback) { console.log("step1"); };

var Q = require("./q");

Q.fcall(step1)
.then(function(v) {
console.log("finished: " +v);
}, function(err){
console.log(err);
})
.end();

它打印:

E:\WORKSPACE_NODE\TestNodeJs\q>node testq.js
step1
finished: undefined

我仍然想要一个演示,step1 会将一些东西传递给 function(v) {console.log("finished: "+v);},其中 v 不是 undefined

最佳答案

让你的step1看起来像这样(修改为最新版本):

 function step1() { console.log("step1"); return "abc" };

然后你会很开心。


查看 Q 文档,我相信您需要 'Q.node(...) 或 Q.ncall(...) 或 Q.fcall(...)

我会阅读更多关于 Q 的内容,或者如果你描述你想做什么,我可能会提供帮助。


step1 接受一个参数——一个函数。

但是当你调用它时你没有定义它所以 callback("abc"); 是未定义的。

当你摆脱所有无关紧要的东西时,也许会更清楚:

 function step1(callback) { console.log("step1"); callback("abc"); };

var Q = require("q");

Q.call(step1)

关于javascript - 如何调试这个nodejs代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10416935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com