由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - node.js里调用了callback之后,还会回到函数里。
相关主题
[合集] C问题求助:如何强行从外部访问local static variable?C里, 如何快速的对一个数组清0
纯虚函数问题slider多长时间调用一次callback?在哪里设置呢?
问一个函数指针的问题,c++也问个二维数组的函数传递问题
为什么需要node.js waterfall,而不是直接call python scriptC编译器为何允许一个函数在某个路径不返回值?
怎样用Widget调用command line application, (转载)C++ most vexing parse到底怎么回事?
func调用结束时出错一个类的非静态成员函数可以用作回调函吗?
请问一下Matlab GUI 里面 调用目录下一个network.mat的问题python中ctypes的passing by refence问题请教
python decorator 调用问题javascript里面的done(), next() 函数?
相关话题的讨论汇总
话题: callback话题: cb话题: 调用话题: return话题: 函数
进入Programming版参与讨论
1 (共1页)
c*********e
发帖数: 16335
1
node.js里调用了callback之后,还会回到函数里。比如
function test(item,cb){
if (item == 1) {
cb(1);
}
if (item == 1) {
cb(2);
}
}
test(1,cb);就会2次调用cb函数。
是这样的吗?
l**********n
发帖数: 8443
2
这个版的水平越来越低下了
l*********s
发帖数: 5409
3
这个问题有点吐槽无力啊。:-)
p*****2
发帖数: 21240
4
他每次发帖都差不多吧?

【在 l*********s 的大作中提到】
: 这个问题有点吐槽无力啊。:-)
h**********c
发帖数: 4120
5
你是不是想说cb(1)出现了exception,或者超时不返回,会出现什么状况,看来有些人
理解力有问题,或者不太门清自己在干什么

【在 c*********e 的大作中提到】
: node.js里调用了callback之后,还会回到函数里。比如
: function test(item,cb){
: if (item == 1) {
: cb(1);
: }
: if (item == 1) {
: cb(2);
: }
: }
: test(1,cb);就会2次调用cb函数。

c*********e
发帖数: 16335
6
不是。最近碰到一个node.js bug,
trace log里说,已经call了callback一次了,不能多次call一个callback.
这就是说,如果我的代码写成下面的形式,cb(1)执行完后,代码还会接着执行下面的
cb(2).
这个就象java的servlet里面一样,forward之后还要加return;
httpServletRequest.getRequestDispatcher("/home.jsp").forward(request
, response);
return;

你是不是想说cb(1)出现了exception,或者超时不返回,会出现什么状况,看来有些人
理解力有问题,或者不太门清自己在干什么

【在 h**********c 的大作中提到】
: 你是不是想说cb(1)出现了exception,或者超时不返回,会出现什么状况,看来有些人
: 理解力有问题,或者不太门清自己在干什么

h**********c
发帖数: 4120
7
恩好坑,颇有引蛇出洞的大手笔
Dear petitioner,
Hope you have reproducible evidence to support your claim and prove your
INNOCENCE.

request

【在 c*********e 的大作中提到】
: 不是。最近碰到一个node.js bug,
: trace log里说,已经call了callback一次了,不能多次call一个callback.
: 这就是说,如果我的代码写成下面的形式,cb(1)执行完后,代码还会接着执行下面的
: cb(2).
: 这个就象java的servlet里面一样,forward之后还要加return;
: httpServletRequest.getRequestDispatcher("/home.jsp").forward(request
: , response);
: return;
:
: 你是不是想说cb(1)出现了exception,或者超时不返回,会出现什么状况,看来有些人

c*********e
发帖数: 16335
8
我本来也不信,上周debug出了这么一error message,改了之后error message就没了。
你说神奇不?
还好这有一证据
https://github.com/caolan/async
---------------
Multiple callbacks
Make sure to always return when calling a callback early, otherwise you will
cause multiple callbacks and unpredictable behavior in many cases.
async.waterfall([
function (callback) {
getSomething(options, function (err, result) {
if (err) {
callback(new Error("failed getting something:" + err.message));
// we should return here
}
// since we did not return, this callback still will be called and
// `processData` will be called twice
callback(null, result);
});
},
processData
], done)
It is always good practice to return callback(err, result) whenever a
callback call is not the last statement of a function.

【在 h**********c 的大作中提到】
: 恩好坑,颇有引蛇出洞的大手笔
: Dear petitioner,
: Hope you have reproducible evidence to support your claim and prove your
: INNOCENCE.
:
: request

n*****t
发帖数: 22014
9
callback 只是一个 func ,跟其他任何 func 没有区别,记住这点就没问题了。
当然,node 可以检测到这点,说明可以从 platform 层面避免。

【在 c*********e 的大作中提到】
: node.js里调用了callback之后,还会回到函数里。比如
: function test(item,cb){
: if (item == 1) {
: cb(1);
: }
: if (item == 1) {
: cb(2);
: }
: }
: test(1,cb);就会2次调用cb函数。

c*********e
发帖数: 16335
10
en,你有过node.js编程经验。

【在 n*****t 的大作中提到】
: callback 只是一个 func ,跟其他任何 func 没有区别,记住这点就没问题了。
: 当然,node 可以检测到这点,说明可以从 platform 层面避免。

相关主题
func调用结束时出错C里, 如何快速的对一个数组清0
请问一下Matlab GUI 里面 调用目录下一个network.mat的问题slider多长时间调用一次callback?在哪里设置呢?
python decorator 调用问题也问个二维数组的函数传递问题
进入Programming版参与讨论
n*****t
发帖数: 22014
11
其实还有一个相关的,express 里 res.send 之后还会继续执行

【在 c*********e 的大作中提到】
: en,你有过node.js编程经验。
n*****t
发帖数: 22014
12
Always return callback 也不一定,有时候你希望先给 client response,然后慢慢
处理一些杂活

will

【在 c*********e 的大作中提到】
: 我本来也不信,上周debug出了这么一error message,改了之后error message就没了。
: 你说神奇不?
: 还好这有一证据
: https://github.com/caolan/async
: ---------------
: Multiple callbacks
: Make sure to always return when calling a callback early, otherwise you will
: cause multiple callbacks and unpredictable behavior in many cases.
: async.waterfall([
: function (callback) {

h**********c
发帖数: 4120
13
没太看懂,好象应该是callback就完了,你的引用又说,可能没完。
其实觉得就象java的exception handling,有io关不死,只能强制推出,但这时候必须
处理所有信号,这在操作系统里是最繁琐的地方。也许node提供这种解决方案,并且跨
平台,mark.
继续观望

【在 c*********e 的大作中提到】
: node.js里调用了callback之后,还会回到函数里。比如
: function test(item,cb){
: if (item == 1) {
: cb(1);
: }
: if (item == 1) {
: cb(2);
: }
: }
: test(1,cb);就会2次调用cb函数。

h**********c
发帖数: 4120
14
忘了,js有没有exception,如果cb(1)throw exception,那么可能程序回来,把cb(2)
执行一遍,这种情况下,应用中说加return 是对的吧?

【在 c*********e 的大作中提到】
: node.js里调用了callback之后,还会回到函数里。比如
: function test(item,cb){
: if (item == 1) {
: cb(1);
: }
: if (item == 1) {
: cb(2);
: }
: }
: test(1,cb);就会2次调用cb函数。

c*********e
发帖数: 16335
15
nickmit的回答很精准,一看他就是编过node.js程序的。

【在 h**********c 的大作中提到】
: 没太看懂,好象应该是callback就完了,你的引用又说,可能没完。
: 其实觉得就象java的exception handling,有io关不死,只能强制推出,但这时候必须
: 处理所有信号,这在操作系统里是最繁琐的地方。也许node提供这种解决方案,并且跨
: 平台,mark.
: 继续观望

1 (共1页)
进入Programming版参与讨论
相关主题
javascript里面的done(), next() 函数?怎样用Widget调用command line application, (转载)
真是痛恨喜欢 throw 的猪func调用结束时出错
请教c++ 类 内外的 同名函数问题请问一下Matlab GUI 里面 调用目录下一个network.mat的问题
当某个函数被调用的时候,需要定义一个宏python decorator 调用问题
[合集] C问题求助:如何强行从外部访问local static variable?C里, 如何快速的对一个数组清0
纯虚函数问题slider多长时间调用一次callback?在哪里设置呢?
问一个函数指针的问题,c++也问个二维数组的函数传递问题
为什么需要node.js waterfall,而不是直接call python scriptC编译器为何允许一个函数在某个路径不返回值?
相关话题的讨论汇总
话题: callback话题: cb话题: 调用话题: return话题: 函数