您可以在没有回调的情况下从模块文件中调用主node.js服务器文件中的函数吗
Can you call a function in your main node.js server file from within a module file without a callBack?
问题如标题所述,您是否可以在模块文件中调用主node.js服务器文件中的函数,而不需要回调?如果这不可能,你能在一个区间内使用callBack并多次调用它吗?
示例代码:
//Main server.js file
var moduleFile = require('./mFile');
...
var foobar = moduleFile.addFoobar();
if(foobar) foobar.fooReady();
function foo(bar){
//do something.
}
//moduleFile / mFile.js
var foobars = [];
function Foobar(){
this.id = 0;
Foobar.prototype.fooReady = function(){
setInterval( function(){
//call foo(); in main file..?
}, 1000);
}
}
var addFoobar = function(data) {
var foobar = new Foobar();
foobar.id = foobars.length+1;
foobars.push(foobar);
return foobar;
}
module.exports.foobars = foobars;
module.exports.addFoobar = addFoobar;
编辑:
如果以上不可能,是否可以通过更改以下行来使用回调来执行。。
//main server.js
if(foobar) foobar.fooReady(foo);
//mFile.js
Foobar.prototype.fooReady = function(callback){
setInterval( function(){
//can you call foo(); in main file via callback(); on every interval run?
}, 1000);
}
干杯。
您可以从没有回调的模块文件?
是的,您可以在不回调的情况下调用其他模块中的同步函数。这就像在Javascript中调用Math.max()
或任何普通函数一样。
你能在一段时间内使用callBack并多次调用它吗?
是的,你可以。
回调的使用有多种原因。例如,Array.prototype.map()
使用的回调被设计为多次同步调用,这是一种完全可以接受的回调方式。
回调也用于表示异步操作的完成。在这种情况下,它们通常只被调用一次以表示完成。
但是,setInterval()
本身使用了一个异步回调,该回调被设计为多次调用。所以,你当然也可以这样设计。
重要的是,你的设计是清晰的,这样打电话的人就知道该期待什么。它叫一次还是不止一次?它是同步调用还是异步调用?在某些情况下,只要呼叫者知道会发生什么,所有这些都是合适的。
你当然可以使用回调为你的间隔如下:
//main server.js
if(foobar) foobar.fooReady(foo);
//mFile.js
Foobar.prototype.fooReady = function(callback){
setInterval( function(){
callback();
}, 1000);
}
或者,如果区间内没有其他事情发生,它甚至会是这样的:
//mFile.js
Foobar.prototype.fooReady = function(callback){
setInterval(callback, 1000);
}
相关文章:
- 从.js文件调用html中的js函数
- 可以't在Wordpress中从HTML中的JS文件调用函数
- 从HTML中的外部JS文件调用函数
- 从angularjs文件调用apicontroller时未发现错误
- 无法从 jquery 中的外部文件调用特定内容
- 如何检查该函数是否从外部js文件调用
- 如何在 jQuery 中使用 eval 从不同的文件调用另一个函数
- 从 PHP 文件调用 js 函数
- 在Rails中使用remote:true在Chrome中有效,但在Safari中无效——从js.erb文件调用succe
- 从外部Javascript文件调用方法
- 从单个angularjs文件调用所有控制器
- 从.ascx文件调用Javascript函数时出错
- 如何从批处理文件调用一个带有2个参数的java脚本函数,并将结果返回到环境变量
- 从另一个文件调用时出现Javascript作用域错误
- 从一个 Javascript 文件中从另一个 Javascript 文件调用函数
- 如何从另一个.js文件调用.js
- 从另一个文件调用函数
- 从 erb 文件调用 js 函数
- 使用 Node js 从另一个文件调用两个文件
- 从 rails 中的不同 coffeescript 文件调用函数