ฉันมีลูปที่เรียกเมธอดที่ทำสิ่งต่างๆแบบอะซิงโครนัส ลูปนี้สามารถเรียกใช้เมธอดได้หลายครั้ง หลังจากลูปนี้ฉันมีลูปอื่นที่ต้องดำเนินการก็ต่อเมื่อทำสิ่งที่ไม่ตรงกันทั้งหมด
สิ่งนี้แสดงให้เห็นถึงสิ่งที่ฉันต้องการ:
for (i = 0; i < 5; i++) {
doSomeAsyncStuff();
}
for (i = 0; i < 5; i++) {
doSomeStuffOnlyWhenTheAsyncStuffIsFinish();
}
ฉันไม่ค่อยคุ้นเคยกับคำสัญญามีใครช่วยฉันทำสิ่งนี้ให้สำเร็จได้บ้าง
นี่คือ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);
});
});
}
แต่ฉันไม่แน่ใจเกี่ยวกับไวยากรณ์