如何从异步.js系列返回结果
How to return results from async.js series
我看到的每个异步示例.js看起来像这样:
var async = require(“async”);
async.series([
function(callback) {
setTimeout(function() {
console.log(“Task 1”);
callback(null, 1);
}, 300);
},
function(callback) {
setTimeout(function() {
console.log(“Task 2”);
callback(null, 2);
}, 200);
},
function(callback) {
setTimeout(function() {
console.log(“Task 3“);
callback(null, 3);
}, 100);
}
], function(error, results) {
console.log(results);
});
最后,他们总是只是安慰.log结果。但是,您如何实际返回结果。每次我尝试时,它都会返回为未定义。
我需要这样的东西:
var async = require('async');
var handler = function()
{
async.series([
function(callback) {
setTimeout(function() {
console.log('Task 1');
callback(null, 1);
}, 300);
},
function(callback) {
setTimeout(function() {
console.log('Task 2');
callback(null, 2);
}, 200);
},
function(callback) {
setTimeout(function() {
console.log('Task 3');
callback(null, 3);
}, 100);
}
], function(error, results) {
return results;
});
}
var result = handler();
console.log(result);
但这行不通,结果总是不确定的。
最终,我需要将其放在 AWS Lambda 上,并返回结果及其上下文.success(results) 调用。但是,我永远无法得到结果。我显然不了解这个过程,如果有人能帮忙,将不胜感激,谢谢!
不能从异步调用返回结果。您可以做的是传递回调函数,当结果可用时,使用结果作为参数调用该回调函数。
var async = require('async');
var handler = function(cb)
{
async.series([
function(callback) {
setTimeout(function() {
console.log('Task 1');
callback(null, 1);
}, 300);
},
function(callback) {
setTimeout(function() {
console.log('Task 2');
callback(null, 2);
}, 200);
},
function(callback) {
setTimeout(function() {
console.log('Task 3');
callback(null, 3);
}, 100);
}
], function(error, results) {
cb(error, results)
});
}
handler(function(err, results) {
if(!err) {
console.log(results);
}
})
为异步系列模块尝试此操作
Details: function (req, res) {
async.series([
function functionOne(callback) {
setTimeout(function(err, response) {
console.log('Task 1');
callback(null, 1);
if (err) {
return callback(err);
}
}, 300);
},
function functionTwo(callback) {
setTimeout(function(err, response) {
console.log('Task 2');
callback(null, 2);
if (err) {
return callback(err);
}
}, 200);
},
function functionThree(callback) {
setTimeout(function(err, response) {
console.log('Task 3');
callback(null, 3);
if (err) {
return callback(err);
}
}, 200);
}
], function (err,res) {
if (err) {
return res.badRequest(err);
}
if (res) {
return response;
}
});
}
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- JS验证ajax返回的html中的表单数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何从异步.js系列返回结果
- 谷歌比较图表使用JSON数据表返回[给定轴上的所有系列必须具有相同的数据类型]
- 使用格式化的 AJAX 返回更新高图表系列数据
- async每个系列都没有按预期返回