gpt4 book ai didi

javascript - 如何向 JavaScript 回调添加另一个参数

转载 作者:行者123 更新时间:2023-12-02 16:20:11 24 4
gpt4 key购买 nike

我有这些方法

function successHandler(result/*,deferred*/) {
var strResult = "";
if (typeof result === 'object') {
strResult = JSON.stringify(result);
} else {
strResult = result;
}
var mes = "SUCCESS: \r\n" + strResult;
NotificationService.alert(mes, "پيغام", "تاييد");
//deferred.resolve();
}

function errorHandler(error/*,deferred*/) {
var mes = "ERROR: \r\n" + error;
NotificationService.alert(mes, "خطا", "تاييد");
//deferred.reject();
}

function init() {
//var deferred = $q.defer();
inappbilling.init(successHandler, errorHandler, { showLog: true });
//return deferred.promise;
}

我需要创建一个延迟对象并将其传递给成功和错误处理程序(就像我评论的那样),因为默认情况下回调有另一个参数,我真的很困惑如何做到这一点

最佳答案

您可以将处理程序包装在匿名函数中,并在其闭包中捕获对 deferred 的引用,如下所示:

inappbilling.init(
successHandler,
function(error){ errorHandler(error,deferred); },
{ showLog: true }
);

我不确定这是否是您想要实现的良好模式,但上述方法应该可以实现您正在寻找的目标。

这样做的好处是错误处理程序的接口(interface)不会改变(在上面的情况下,只有一个参数,错误对象),但在内部您正在使用多参数处理程序。

关于javascript - 如何向 JavaScript 回调添加另一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29205819/

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