3 javascript promise es6-promise
我有一些承诺和 Promise.all:
array = [];
var one = new Promise(function(resolve, reject) {
// Do stuff
setTimeout(function() {
resolve('One Done');
array.push('one');
}, 5000);
});
var two = new Promise(function(resolve, reject) {
// Do Stuff
resolve('Two Done');
array.push('two');
});
Promise.all(array).then(values => {
console.log(values);
});
Run Code Online (Sandbox Code Playgroud)
我们知道这不起作用,因为 array.push 需要在外面。
我目前有一些函数需要通过 Promise 调用,以便最终我可以在 Promise.all 中使用它。
是否建议像这样从 Promise 内部调用该函数:
function dosomething() {
// does something
array.push('something');
}
var mypromise = new Promise(function(resolve, reject) {
dosomething();
resolve('Did something');
});
Run Code Online (Sandbox Code Playgroud)
或者有没有更明智的方法来做到这一点?
Promise.all等待Promises. 在您的示例中,您总是将string类型推入数组。这显然行不通。在您的第一个示例中,您希望自己推送承诺:
array = [];
var one = new Promise(function(resolve, reject) {
// Do stuff
setTimeout(function() {
resolve('One Done');
}, 5000);
});
array.push(one);
var two = new Promise(function(resolve, reject) {
// Do Stuff
resolve('Two Done');
});
array.push(two);
Promise.all(array).then(values => {
console.log(values);
});
Run Code Online (Sandbox Code Playgroud)
只要数组包含Promise对象,Promise.all就会按预期工作。
| 归档时间: |
|
| 查看次数: |
13365 次 |
| 最近记录: |