Javascript を使用して、for ループで変更された後に配列の結果を取得します || .forEach || 入り?
問題は、javascript がすべてを非同期で実行することです。そのため、この一見単純な問題の解決策を見つけることができません。
例:
action: function () {
modelsResult = [];
Model.forEach(function (model) {
doSomething(model, function (newModel) {
modelsResult.push(newModel);
});
response.send({
models: modelsResult
});
}
var doSomething = function (model, callback) {
model.id = model.id++;
callback(model);
}
response.send
forEach が提供するすべてのモデルが modelsResult に含まれる前に実行されます。ただしresponse.send
、 forEach 内に配置すると、同じことが起こります。