【发布时间】:2016-07-06 16:56:24
【问题描述】:
在我的主要代码中,我执行以下操作:
var module = require('./module')
module.FooA(module.FooB);
module.js 包含下一个代码:
var request = require('request'); //using of npm "request"
exports.FooB = function(data){ /*operations on data here*/ };
exports.FooA = function(callback){
var url = some_link;
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
callback(body);
};
});
};
问题显然是,callback(body) 即使条件满足也不会运行。 var result = request(url) 后跟 exports.FooB(result) 完成了这项工作,但据我所知,显然不像回调,会产生麻烦。
在这种情况下定义回调函数的正确方法是什么?我是否需要,或者它实际上是同步的,我没有注意到它?
【问题讨论】:
-
我尝试了您发布的代码,它工作正常,问题出在其他地方。你确定你的要求是 200/OK 吗?你可以试试jsonplaceholder.typicode.com/users 吗?
-
@ShanShan 对不起,我不是很清楚。此代码在后端运行,因此如果出现语法错误,它会以 HTTP 500 进行响应。为了测试它是否有效,我从前端发送一个变量,在
FooB中修改它,然后将其发回并写出来。问题是 尽管没有语法错误,但我对 innFooB所做的任何更改都没有发生。因此,我假设它的内容没有被执行。 -
不要假设任何事情,将console.log放在每一步,你发布的结构对我有用,也应该对你有用。
-
@ShanShan 好吧,你是对的 - 我有点天真,因为这种调试方式一直对我有用。
标签: node.js express module request asynccallback