Еще один подход к возврату значения из асинхронной функции - передать объект, который сохранит результат от асинхронной функции.
Вот пример того же:
var async = require("async");
// This wires up result back to the caller
var result = {};
var asyncTasks = [];
asyncTasks.push(function(_callback){
// some asynchronous operation
$.ajax({
url: '...',
success: function(response) {
result.response = response;
_callback();
}
});
});
async.parallel(asyncTasks, function(){
// result is available after performing asynchronous operation
console.log(result)
console.log('Done');
});
Я использую объект result
для хранения значения во время асинхронной операции. Это позволяет получить результат даже после асинхронного задания.
Я использую этот подход много. Мне было бы интересно узнать, насколько хорошо этот подход работает, когда задействован результат обратно через последовательные модули.
Если вам нужно вычесть столбцы 3:ncol(df)
из второго столбца
df[3:ncol(df)] <- df[3:ncol(df)]-df[,2]
Это также сработает - возвращает 9 столбцов, из которых вы вычитали второй.
df = data.frame(matrix(rnorm(100,0,1),nrow = 10))
df[,-2] - df[,2]