- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用回调来指示所有 async
worker 何时完成,但我遇到了可怕的
TypeError: callback is not a function.
我想单独处理数据中的每个元素,并在完成时让 queue.drain
发送 callback(data)
以在完成时刷新数据。我一直在准备 async documentation ,但显然我没有得到什么。
function refreshData(postData, callback) {
var options = {
host: 'www.myhost.com',
port: 443,
path: '/pulldata,
method: 'POST',
headers: {
"Content-Type": "application/json"
}
};
var req = https.request(options, function(res) {
var headers = res.headers
var d = '';
res.setEncoding('utf8');
res.on('data', function (chunk) {
d = d + chunk;
});
res.on('end', function() {
if (res.statusCode == '200') {
data = JSON.parse(d);
queue = async.queue(function (task, cb) {
processData(task,cb);
},1);
//this is were the errors are
queue.drain = function() {
callback(data)
};
for(i=0; i<data.length; i++) {
queue.push(data[i],'');
}
} else {
callback(false)
}
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
// write data to request body
req.write(postData);
req.end();
}
如有任何帮助,我们将不胜感激!
编辑,添加了一些伪代码来演示如何使用 refreshData:
Node https.createServer(req,res) {
req.on(){
read userData
}
req.end(){
validateUser(userData, function(callbackData) {
if(callbackData==false) {
//bad user or error with request
res.writeHead(404);
res.end('bye');
} else {
//good user and responses
res.writeHead(200);
res.end(callbackData);
}
})
}
}
function validateUser(userData,callback) {
//do some stuff to validate
if(userData is good) {
//call refreshData if user
refreshData(userData,callback)
} else {
callback(false)
}
}
最佳答案
[编辑] 添加了回调按照您指向的文档中的说明,更改此行
queue.push(data[i],'');
到
queue.push(data[i], function(err){
// handle error
});
在这里试试 async-queue-callback
关于javascript - queue.drain 上的 node.js 异步回调错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43336436/
当我使用 sinfo我看到以下内容: $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST [...] RG3 up 2
Rust 具有排空整个序列的功能, If you do need to drain the entire sequence, use the full range, .., as the argume
从表面上看,两者都像drain和 into_iter提供类似的迭代器,即遍历集合的值。然而,它们是不同的: fn main() { let mut items1 = vec![0u8, 1,
我有这段代码: const file = fs.createWriteStream('./test.txt'); let written = true; // handler is added bef
documentation for write()说: Returns false to indicate that the kernel buffer is full, and the data w
来自 doc : write(data) Write data to the stream. This method is not subject to flow control. Calls to
在许多书籍和许多网站上,我看到 -drain。嗯,对于一个听起来很酷的自动释放池来说。但它除了发布之外还有其他作用吗?我猜 -drain 只是让池释放它的所有对象,而不释放池本身。只是猜测。 最佳答案
我正在使用 MongoMemoryServer 编写集成测试。我有两个集成测试文件。当我运行 IT 测试时,我看到以下内容。我不明白为什么。我正在使用 jestjs 测试框架。 当我有两个 IT 测试
我正在尝试使用以下程序写入一个大文件 // this program will result in "JavaScript heap out of memory" const fs = require
嗨,我们已经创建了一个从 pcf 到 logstash 的 Syslog Drain,但有时我们会得到 2018-07-19T15:09:53.524+05:30 [LGR/] [ERR] Syslo
我的游戏通过通常的方法播放声音: sdl.open(); sdl.start(); sdl.write(data, 0, data.length); sdl.drain(); sdl.stop();
我面临一个有趣的问题。我们运行基于状态的基于 HTTPS 的应用程序。状态是基于 session cookie 维护的。该应用程序的设计方式是,如果 session 突然终止,该应用程序将恢复到主屏幕
我正在创建一个短片然后播放它,调用 start() 方法。然后我调用 drain() 方法来阻止执行,直到剪辑播放完成。但是,多次运行下面的代码时,有时有效,有时无效,并且声音在结束前随机停止。 Mi
我在我的 Flutter 应用程序中按照 BLOC 模式使用 dart Streams,所以从逻辑上讲,每当我用完一个 Bloc 时,我都需要处理其中的所有流。 因此,在有状态小部件提供的处置方法上,
这是我的代码模板: int main(int argc, char *argv[]) { // create an autorelease pool NSAutoreleasePool
我正在尝试使用回调来指示所有 async worker 何时完成,但我遇到了可怕的 TypeError: callback is not a function. 我想单独处理数据中的每个元素,并在完成
我正在尝试在 Ubuntu Hardy 上编译以下 Objective-C 程序,但由于某些原因,我收到了警告。 #import int main (int argc, char *argv[])
我正在使用 cocos2d 制作一个基于加速度计的应用程序,我注意到可以设置加速度计更新间隔。 [[UIAccelerometer sharedAccelerometer] setUpdateInte
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: What's the difference between sending -release or -dra
医生说: In a garbage-collected environment, sending a drain message to a pool triggers garbage collecti
我是一名优秀的程序员,十分优秀!