gpt4 book ai didi

javascript - Node.JS 中的异步

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:20 25 4
gpt4 key购买 nike

我对 Node.JS 中的异步和回调有点陌生。您能否告诉我这是否是进行异步调用的正确方法?

function myFunc(schema) {
async.each(Object.keys(schema), function(variable) {
for (item in schema[variable]) {
for (field in schema[variable][item]) {
// Some operations go here
}
createDB(item, schema[variable][item]);
}
});
}


function CreateDB(name, new_items) {
ddb.createTable(selected_field.name, {hash: ['id', ddb.schemaTypes().number],
range: ['time', ddb.schemaTypes().string],
AttributeDefinitions: new_items
},
{read: 1, write: 1}, function(err, details) {
console.log("The DB is now created!");
});
}

谢谢

最佳答案

这将是一种方法,尽管如此,我不喜欢回调,我更喜欢使用 promises .
这种方法只会将所有错误传播到 cb1,如果您想处理介于两者之间的错误,您应该 wrap them or try to fix stuff .

如果您要在内部 for 循环中执行异步操作,您将获得一些额外的异步重构乐趣。

function myFunc(schema, cb1) {
async.each(Object.keys(schema), function(variable, cb2) {
async.each(Object.keys(schema[variable]), function(item, cb3) {
for (var field in schema[variable][item]) {
// Some operations go here
}
createDB(item, schema[variable][item], cb3);
}, cb2);
}, cb1);
}

function CreateDB(name, new_items, cb) {
ddb.createTable(selected_field.name, {hash: ['id', ddb.schemaTypes().number],
range: ['time', ddb.schemaTypes().string],
AttributeDefinitions: new_items
},
{read: 1, write: 1}, cb);
}

关于javascript - Node.JS 中的异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25191520/

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