我正在研究一系列旨在帮助理解回调函数的问题。我知道,如果在事件之后调用了一个函数,则会产生回调,但是我不确定在这种情况下该函数如何工作。
我有一个循环遍历传入数组并运行加密功能的循环。
const cipher = require('./cipher')
exports.encrypt = function(text, callback) {
cipher.encrypt(text, callback)
}
exports.decrypt = function(text, callback) {
cipher.decrypt(text, callback)
}
exports.encryptMultiple = function(textArray, callback) {
// 1. For each string in the textArray call exports.encrypt to encrypt the string
// 2. Each encrypt must be run in parallel
// 3. If one encrypt fails then call the callback immediately with the error as the first parameter
// 4. If all encrypts succeed then return an array of encrypted strings. They must be in the same order as received.
//what I have so far
let encrypted = []
textArray.forEach(element => {
encrypted.push(cipher.encrypt(element))
});
}
期望的输出是加密值的数组。目前,我正在接收一个未定义每个元素的数组。
答案 0 :(得分:0)
首先,您可能想在问题中提供更多背景信息。 其次,我相信您对回调有一些困惑。回调只是放置的函数,可以传递给将执行它们的其他函数。还有很多东西,但这是我能提供的最简单的解释。据我了解,如果有异常,您想执行回调。这可能就是您要寻找的。 p>
try {
//Execute your code here.
cipher.encrypt(element);
}
catch(error) {
callback();
}
答案 1 :(得分:0)
您好,您正在使用的密码npm不需要第二个参数take a look by clicking here!。 take a look at export here也不需要对同一文件中使用的功能使用导出。
代替
exports.encrypt = function(text, callback) {
cipher.encrypt(text, callback)
}
exports.decrypt = function(text, callback) {
cipher.decrypt(text, callback)
}
您可以简单地实现
encrypt = function(text){
cipher.encrypt(text);
}
decrypt = function(text, callback) {
cipher.decrypt(text);
}
并在forEach中调用这些函数。至于对回调的理解,请考虑以下示例
function doHomework(subject, callback) {
alert(`Starting my ${subject} homework.`);
callback();
}
function alertFinished(){
alert('Finished my homework');
}
doHomework('math', alertFinished);
请参考click here!