簡體   English   中英

Node.js 函數參數注入函數

[英]Node.js function parameter inject into function

我正在嘗試創建如下所示的新功能

function NVConvertToFV (array, func) {
    var funcA = [];
    for(var i=0; i<array.length; i++) {
        var valueF = function (callback) {
            func(array[i], callback);
        }
        funcA[i] = valueF;
    }
    return funcA;
}

但是,'func(array[i], callback);' 識別為只是一個字符串。

前任。

var funcA = [];
var msg = ['hello ', 'it ', 'is ', 'impossible!'];
function alert (para, callback) {
    console.log(para);
    callback(null);
}
funcA = NVConvertToFV(msg, alert);
console.log(String(funcA));

結果:

function (callback) {func(array[i], callback);},
function (callback) {func(array[i], callback);},
function (callback) {func(array[i], callback);},
function (callback) {func(array[i], callback);},

'func' 和 'array[i]' 是否有可能被識別為函數和數組? 喜歡,

function (callback) {alert('hello', callback);},
function (callback) {alert('it', callback);},
function (callback) {alert('is', callback);},
function (callback) {alert('impossible', callback);},

如果有人幫助我,那將是非常高興的。

NVConvertToFV()使用array.forEach()而不是普通的 for 循環,以便正確捕獲數組中的當前值,以便內部內聯回調保持正確的引用。 例如:

function NVConvertToFV(array, func) {
  var funcA = new Array(array.length);
  array.forEach(function(val, i) {
    funcA[i] = function(callback) {
      func(val, callback);
    };
  });
  return funcA;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM