我知道这是一个简单的,愚蠢的问题,但它已经两天了,因为我卡住了它。如何等待'for'循环返回
考虑是有功能的,从某些对象类型UnsafeCourse
管理对象类型Course
的创作,就像这样:
Class Schedule {
constructor() {
this.courses = [];
}
sectionNeedsCourse(unsafeCourse) {
this.courses.forEach(function (course, index, array) {
if (course.couldBeRepresentedBy(unsafeCourse)) {
return course;
}
}
return new Course(unsafeCourse, [some additional parameters...]);
}
}
随着事态的node.js中以异步方式工作,为循环不见了通。
我尝试了与Promise
s不同的方法,没有奏效。
sectionNeedsCourse(unsafeCourse) { //-> Promise
return new Promise (function (resolve) {
new Promise(function (resolve) {
this.courses.forEach(function (course, index, array) {
if (course.couldBeRepresentedBy(unsafeCourse)) {
resolve(eachCourse);
}
});
resolve(null);
}).then(function (result) {
console.log(result);
if (result != null) {
addCourse(unsafeCourse).then(function (result) {
resolve(result);
});
} else {
resolve(result);
}
});
});
}
而且,它是一个很好的做法,同样的功能使用多个Promise
S'
它是否会造成沉重的开销?
等待,你'从'.forEach'回调中return'ing?看起来即使你的原始代码不能像预期的那样工作。 *假设*会发生什么? – Bergi
@Bergi其实我把它的目的是说明它是如何在这样的同步平台(代码是从Swift语言翻译过来的) – Leviathlon
[使用'new Promise'](http:// stackoverflow。 com/q/23803743/1048572)。 – Bergi