gpt4 book ai didi

javascript - 多个 if, else if 语句中的回调 hell

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:29 24 4
gpt4 key购买 nike

我有带有datacallback 参数的函数。 data 是一个具有许多属性的对象,我必须验证这些属性。我写了多个 if、else if 语句来做这件事,但我觉得这太恶心了。

function(data, callback) {

if (data.a != 'x') {
logger.log(...);
return callback({status: false, code: 'x'});
} else if (data.b != 'y') {
logger.log(...);
return callback({status: false, code: 'y'});
} else if (data.c != 'z') {
logger.log(...);
return callback({status: false, code: 'z'});
} else if (data.d != 'w') {
logger.log(...);
return callback({status: false, code: 'w'});
}

//... logic ...
return callback({status: true});
}

我认为这不是合适的方式。

最佳答案

一种方法是将验证分解为单独的函数:

function failureCode(data) {
if (data.a != 'x')
return 'x';
if (data.b != 'y')
return 'y';
if (data.c != 'z')
return 'z';
}

function (data, callback) {
var code = failureCode(data);
if (code) {
logger.log(...);
return callback({status: false, code: code});
}

//... logic ...
}

此外,不要忘记从“失败”分支返回

关于javascript - 多个 if, else if 语句中的回调 hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42347068/

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