【发布时间】:2017-02-15 20:12:42
【问题描述】:
所以我从 promise 返回了一个 [200,599] 数组,并且 spread 内部的回调函数被传递到 Function.apply.bind,但现在我迷路了。 [200,599] 的数组如何拆分为 x 和 y? 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
} )
)
【问题讨论】:
-
你知道他们自己做什么,对吧?
标签: javascript promise ecmascript-6 bind apply