Mar*_* AJ -1 javascript jquery function es6-promise
这是我的代码:
let cleanRoom = function() {
return new Promise(function(resolve, reject) {
resolve('Cleaned The Room');
});
};
let removeGarbage = function(message) {
return new Promise(function(resolve, reject) {
resolve(message + ' remove Garbage');
});
};
let winIcecream = function(message) {
return new Promise(function(resolve, reject) {
resolve( message + ' won Icecream');
});
};
Promise.all([cleanRoom, removeGarbage, winIcecream]). then(function(){
console.log('all finished');
})
Promise.all([cleanRoom(), removeGarbage(), winIcecream()]). then(function(){
console.log('all finished');
})
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,两者(带括号和不带括号)都返回相同的结果。那么这样说对吗?
仅当您想要将某些内容传递给函数时才应使用括号。否则没有必要使用它。
这是区别:
首先,Promise.all您传递对function.
第二次,Promise.all您传递对 a 的引用
Promise。
如果您想记录结果,您将看到差异:
let cleanRoom = function() {
return new Promise(function(resolve, reject) {
resolve('Cleaned The Room');
});
};
let removeGarbage = function(message) {
return new Promise(function(resolve, reject) {
resolve(message + ' remove Garbage');
});
};
let winIcecream = function(message) {
return new Promise(function(resolve, reject) {
resolve( message + ' won Icecream');
});
};
Promise.all([cleanRoom, removeGarbage, winIcecream]).then(function(result){
console.log(result);
})
Promise.all([cleanRoom(), removeGarbage('foo'), winIcecream('bar')]).then(function(result){
console.log(result);
})Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>Run Code Online (Sandbox Code Playgroud)
编辑
我忘了提及,在您的某些函数中您希望获得一个message参数。
嗯,不使用括号就无法传递它。
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |