У меня есть два файла в папке - index.js
и util.js
с их базы кода следующим образомНеожиданные переменные аргументы [] при прохождении функции
util.js
let obj = {}
obj.sendTransaction =() => {
console.log(arguments);
return new Promise((resolve, reject) => {
// try {
// let data = ethFunction.call()
// resolve(data)
// } catch (e) {
// reject(e)
// }
});
}
module.exports = obj
В Index.js
, если я прохожу аргументы addNewParticipant
или его изменения, то они не превращаются в аргументы объекта в util.js
, например
const addNewParticipant = (foo, bar) => {
var ethFunction = myContract.addParticipant.sendTransaction
console.log(ethFunction);
EthUtil.sendTransaction()
}
const addNewParticipantTwo = (foo, bar) => {
var ethFunction = myContract.addParticipant.sendTransaction
console.log(ethFunction);
EthUtil.sendTransaction(ethFunction, foo, bar)
}
и называть его addNewParticpant(1, 2)
и, addNewParticpantNew(1, 2)
номерами 1 и 2 не отображаются в объекте arguments в функции util. На самом деле, аргументы объект остается таким же, 4 входа, описывающие некоторые функции и файлы в node_modules
включая Bluebird
и ссылкой на index.js
самого
Моя конечная цель заключается в
Передайте функцию от
index.js
кutil.js
Pass по неизвестному числу переменных
Вызов переданной функции и применить неизвестное число переменных к нему
обернуть все это в обещании и сделать некоторые проверки данных
В идеале arguments[0]
будет представлять собой функцию, я бы передать и другой - значения. Я бы затем использовать
var result = arguments[0].apply(null, Array().slice.call(arguments, 1));
Если это поможет, то функции я хочу передать имеет дополнительную функцию обратного вызова
жирные стрелки не имеют собственного объекта 'this' или' arguments'. Если вы этого хотите, вам придется использовать «обычные функции». или вы используете параметр [rest parameter] (// developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/rest_parameters) 'obj.sendTransaction = (fn, ... args) => {console.log (fn, args)} ' – Thomas
И, пожалуйста, прекратите рассылку тегов, этот вопрос не имеет ничего общего с nodejs, прототипом или prototypejs – Thomas