¿Cómo funciona function.apply.bind en el siguiente código?
Así que entiendo que la promesa devuelve una matriz de [200,599] y la función de devolución de llamada dentro de spread se pasa a Function.apply.bind, pero ahora estoy perdido. ¿Cómo se divide la matriz de [200,599] en x e y? ¿Cómo funciona exactamente el apply.bind?
function getY(x) {
return new Promise( function(resolve,reject){
setTimeout( function(){
resolve( (3 * x) - 1 );
}, 100 );
} );
}
function foo(bar,baz) {
var x = bar * baz;
// return both promises
return [
Promise.resolve( x ),
getY( x )
];
}
function spread(fn) {
return Function.apply.bind( fn, null );
}
Promise.all(
foo( 10, 20 )
)
.then(
spread( function(x,y){
console.log( x, y ); // 200 599
} )
)