注意:不能完全确定这些是链接视频演示中讨论的模式比较。
在10000次迭代中,命名功能似乎在铬下的V8实现中完成最快。
Arrow function似乎比匿名函数在更短的时间内返回结果。
在100000次迭代中,匿名函数在最短的时间内完成;
64.51ms少于命名函数,而箭头函数比命名函数花费
4902.01ms更多的时间。
var len = Array.from({ length: 100000 }) // named function function _named() { console.profile("named function"); console.time("named function"); function resolver(resolve, reject) { resolve("named function") } function done(data) { console.log(data) } function complete() { console.timeEnd("named function"); console.profileEnd(); return "named function complete" } function callback() { return new Promise(resolver).then(done) } return Promise.all(len.map(callback)).then(complete); } // anonymous function function _anonymous() { console.profile("anonymous function"); console.time("anonymous function"); return Promise.all(len.map(function() { return new Promise(function(resolve, reject) { resolve("anonymous function") }) .then(function(data) { console.log(data) }) })) .then(function() { console.timeEnd("anonymous function"); console.profileEnd(); return "anonymous function complete" }) } // arrow function function _arrow() { console.profile("arrow function"); console.time("arrow function"); return Promise.all(len.map(() => { return new Promise((resolve, reject) => resolve("arrow function") ) .then((data) => { console.log(data) }) })) .then(() => { console.timeEnd("arrow function"); console.profileEnd(); return "arrow function complete" }) } _named().then(_anonymous).then(_arrow)jsfiddle https://jsfiddle.net/oj87s38t/



