gpt4 book ai didi

javascript - 将数据传递给回调函数的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 11:47:18 26 4
gpt4 key购买 nike

我找不到与此事物相关的正确术语,所以我决定写一个问题。

我有这个功能:

var methods = {

login: function(callback){

$someCustomService
.login() // This returns $http
.success(function(data){

// callback(true, data); --- doing this without using 'return' also works
return callback(true, data);
})
.error(function(data){

return callback(false, data);

})

}

};

调用函数:

$anotherCustomService.login(function(success, data){

if(success){
alert('Success');
}else{
alert('Fail');
}

console.log(data);

});

return callback(true, data); 工作得很好,但如果我将其更改为 callback(true, data); 而不使用 return 它也有效。现在我很困惑是否该使用什么。

编辑

顺便说一句,我问这个的主要原因是因为:
angular.noop

function foo(callback) {
var result = calculateResult();
(callback || angular.noop)(result);
}

它没有使用我在编写 JavaScript 函数时首先学到的任何 return

最佳答案

回调函数通常不返回任何内容,可以说它们是 void 类型。 successerror 方法都不关心回调返回什么,你也不关心。无论您是否传递结果都没有任何区别,无论如何在您的情况下它都是未定义

因此,请使用较短的解决方案,不带任何返回

有时您仍然会看到使用return的回调,但仅限于 helping with control flow 。假设错误情况不传递数据,您可以编写

$anotherCustomService.login(function(success, data){
if(!success)
return alert('Fail');
// ^^^^^^
alert('Success');
console.log(data);
});

关于javascript - 将数据传递给回调函数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25998632/

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