我有一个循环,它调用一个异步执行的方法。这个循环可能会多次调用这个方法。在这个循环之后,我有另一个循环,只有当所有异步操作都完成时才需要执行。
所以这里是我的需求:
for (i = 0; i < 5; i++) {
doSomeAsyncStuff();
}
for (i = 0; i < 5; i++) {
doSomeStuffOnlyWhenTheAsyncStuffIsFinish();
}
我对Promise不是非常熟悉,所以有没有人可以帮助我实现这个?
这是我的doSomeAsyncStuff()
的行为:
function doSomeAsyncStuff() {
var editor = generateCKEditor();
editor.on('instanceReady', function(evt) {
doSomeStuff();
// There should be the resolve() of the promises I think.
})
}
也许我需要做这样的事情:
function doSomeAsyncStuff() {
var editor = generateCKEditor();
return new Promise(function(resolve,refuse) {
editor.on('instanceReady', function(evt) {
doSomeStuff();
resolve(true);
});
});
}
但我不确定语法是否正确。
Promise
末尾没有s
。 - T.J. Crowder