gpt4 book ai didi

node.js - Node .异步并行: can we create dynamic texts to denote tasks?

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:23 27 4
gpt4 key购买 nike

在 Node 异步方法中,我们将任务定义为“一个”或“两个”,如下例所示。有没有办法使该文本动态化?

    var async = require("async");
async.parallel({
one: function(callback){
setTimeout(function(){
callback(null, 1);
}, 200);
},
two: function(callback){
setTimeout(function(){
callback(null, 2);
}, 100);
}
},
function(err, results) {
console.log(results); // results is now equals to: {one: 1, two: 2}
});

最佳答案

我同意@Castaglia通过提供有关您正在尝试做的事情的更多详细信息,您可能会受益。也就是说,我将简单地回答上述问题。

是的,可以动态计算对象的键。这适用于任何对象,而不仅仅是传递给 async.parallel() 的对象。也许 Node 中可用的最优雅的解决方案是利用新的 ES2015 功能:computed property names .

'use strict';

const async = require('async');

function dynmaicAsync(fnOne, fnTwo) {
async.parallel({
[fnOne](callback) { ... },
[fnTwo](callback) { ... }
},
(err, results) => console.log(results));
}

dynmaicAsync('un', 'deux');
// { un: 1, deux: 2}

上面的例子也使用了ES2015 shorthand method definition syntax ,这使我们不必使用 function 关键字来定义对象字面量的方法。

或者,如果您不想使用这些 ES2015 功能,您可以执行以下操作:

'use strict';

var async = require('async');

function dynmaicAsync(fnOne, fnTwo) {
var fns = {};
fns[fnOne] = function { ... };
fns[fnTwo] = function { ... };
async.parallel(fns, function(err, results) { ... });
}

关于node.js - Node .异步并行: can we create dynamic texts to denote tasks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35531816/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com