一徊哑、最近在看promise,驚奇的發(fā)現(xiàn):原來 setTimeout不只有兩個參數(shù)聪富,我還能說什么呢莺丑?趕緊探探究竟。
function multiply(input) {
return new Promise(function (resolve, reject) {
log('calculating ' + input + ' x ' + input + '...');
setTimeout(resolve, 500, input * input);
});
}
二墩蔓、定義
-
扒了一下MDN,果然有定義:
- Additional parameters which are passed through to the function specified by func once the timer expires.
- 注:定時器啟動時候梢莽,第三個以后的參數(shù)是作為第一個func()的參數(shù)傳進去。
- Additional parameters which are passed through to the function specified by func once the timer expires.
三奸披、demo1
-
增加兩個參數(shù)
function sum(x, y) { console.log(x+y) } setTimeout(sum, 1000, 1, 3); //4
-
增加三個參數(shù)
(打印出的11是setTimeout的timeId)
-
可以看出:
- [第三個參數(shù)及以后的參數(shù)都可以作為sum函數(shù)的參數(shù)昏名;]
四、再看demo2
var doc=document.getElementById('div');
setTimeout(function(){
doc.style.color='red';
},10000,setTimeout(function(){
doc.style.color='black';
},5000));
- 上面的結(jié)果是阵面,div元素內(nèi)的字體樣式5秒后變黑轻局,10秒后再變紅洪鸭。是不是很驚奇,因為第三個參數(shù)也是一個定時器仑扑,5后就會開啟览爵。和JQuery里面的animate()不同,animate里面回調(diào)是執(zhí)行了前面之后再執(zhí)行后面的镇饮。