1、最近在看promise,驚奇的發現:原來 setTimeout不僅有兩個參數,我還能說什麼呢?趕忙探探究竟。javascript
function multiply(input) {
return new Promise(function (resolve, reject) {
log('calculating ' + input + ' x ' + input + '...');
setTimeout(resolve, 500, input * input);
});
}
2、定義java
扒了一下MDN,果真有定義:promise
’Additional parameters which are passed through to the function specified by func once the timer expires.’函數
定時器啓動時候,第三個之後的參數是做爲第一個func()
的參數傳進去。字體
3、demo1spa
增長兩個參數3d
function sum(x, y) { console.log(x+y) //3 }
setTimeout(sum, 1000, 1, 3);
增長三個參數 code
(打印出的11是setTimeout的timeId)blog
能夠看出:ip
[第三個參數及之後的參數均可以做爲sum函數的參數;]
4、再看demo2
var doc=document.getElementById('div'); setTimeout(function(){ doc.style.color='red'; },10000,setTimeout(function(){ doc.style.color='black'; },5000));
上面的結果是,div元素內的字體樣式5秒後變黑,10秒後再變紅。是否是很驚奇,由於第三個參數也是一個定時器,5後就會開啓。和JQuery裏面的animate()不一樣,animate裏面回調是執行了前面以後再執行後面的。