我有以下代码:
accountSelector.executeInParallel('processAccounts', 'postProcess');
function processAccounts() {
return JSON.stringify(syncMasterLists());
}
而不是这样,我希望能够将值传递给processAccounts
帐户功能。
为此,我更改了代码,所以它现在看起来像这样:
accountSelector.executeInParallel('processAccounts("DE")', 'postProcess');
function processAccounts(arg) {
return JSON.stringify(syncMasterLists());
}
不幸的是,在引入更改后,我开始收到以下错误:
无法找到函数processAccounts(“DE”)。
我无法理解我做错了(如果是,那么有什么不对)或者它只是无法完成的事情。
答案 0 :(得分:2)
我无法理解我做错了(如果是,那么是什么 错了)或者它只是无法完成的事情。
accountSelector.executeInParallel
将函数名称作为参数并执行相同的操作,processAccounts("DE")
不是有效的函数名称或存在的函数的名称。
根据documentation,有一种方法可以传递optionalInput
参数
输入,如果由optionalInput指定,将被传递给 functionName
指定的函数
accountSelector.executeInParallel(functionName, optionalCallbackFunctionName, optionalInput)
在你的情况下,它将是
accountSelector.executeInParallel('processAccounts', 'postProcess', 'DE' );
答案 1 :(得分:0)
为什么不首先调用函数并将'executeInParallel'方法中的结果替换为如下:
var res = processAccounts("DE");
accountSelector.executeInParallel(res, 'postProcess');
function processAccounts(arg) {
return JSON.stringify(syncMasterLists());
}
答案 2 :(得分:0)
某些关闭可能会解决您的问题,具体取决于accountSelector.executeInParallel
的实施方式
const accountSelector = {
executeInParallel(pre, post) {
let result = eval(pre)()
eval(post)(result)
}
}
accountSelector.executeInParallel(processAccountsWithArg('Foo'), 'postProcess');
function processAccount(arg) {
console.log('processAccount', arg)
return JSON.stringify({
key: 'value'
});
}
function processAccountsWithArg(arg) {
return function() {
return processAccount(arg)
}
}
function postProcess(result) {
console.log('postProcess', result)
}