Node.js回调中使用的返回变量
Node.js return variable used in callback
在一些模块中,我看到了这种在回调中初始化变量的奇怪方式。
这个特殊的例子来自mssql
模块:
var sql = require('mssql');
var connection = new sql.Connection(config, function (err) {
var request = new sql.Request(connection);
request.query('select 1 as number', function (err, recordset) {
// do something
});
});
在我看来奇怪的是,connection
在回调中被使用,好像它已经初始化了,事实上它是。
然而,我认为callback
应该在sql.Connection()
做return
之前运行。事实上,没有办法在它之后运行任何东西return
s。
这个东西是怎么工作的?
回调是异步的,这意味着它不会立即运行。正因为如此,它被放置在一个队列中,并在解释器不做任何事情时运行。例如,试试这个:
var connection = new sql.Connection(config, function(err) {
console.log('I run second');
});
console.log('I run first');
相关文章:
- 如何从jquery函数返回变量
- 返回变量作为构造函数
- 从导出的模块返回变量,并在另一个文件(NodeJS)中使用它
- 在JavaScript和knockout.js中,为什么可以'我不返回一个变量吗?为什么我必须返回变量,就好像它
- 如何从匿名函数返回变量
- 在呈现函数中返回变量
- 在设置超时后返回变量
- AngularJS在大括号中返回变量名称,而不是值
- JQuery:创建扩展返回变量未定义
- 我应该从量角器中元素的 getText() 承诺中分配一个变量或返回变量
- AJAX 在 cicle 完成后返回变量
- 如何返回变量并同时重置/删除它
- 如何从 javascript 中的回调函数返回变量
- 返回变量而不声明它的函数
- 正在从数组中返回变量名
- 从reader.onload事件返回变量
- 延迟返回变量,直到数据从Firebase同步
- 函数不't返回变量
- 如何将函数中的返回变量插入HTML表单
- Javascript 方法不返回变量