0
たいと私は、次のコードを持っている:q.all機能が動作しない、私はそれがあまりにも
function start() {
var function = this.buildUpModels;
console.log('async wordt gestart');
$q.all([Timeline.updateEvents(),Timeline.updateTimeslots(),Sponsors.updateSponsors(),Biography.updateBiography()]).then(function (rv){
console.log('async is done');
function();
});
window.localStorage.setItem('check', 'done');
window.localStorage.setItem('planning', '[1,2]');
}
function buildUpModels() {
console.log('start buildUpModels')
Biography.buildObject();
Timeline.buildObject();
}
次の(すべてが同様にコード化されている)非同期更新機能の一つである:
function updateBiography() {
return $http.get("pathToData")
.then(function (resp) {
console.log("update bio")
window.localStorage.setItem('biography', resp.data);
window.localStorage.setItem('biographyTimeStamp', Date.now());
}, function (err) {
console.log('ERR', err);
});
}
私が理解しているように、q.all()内のすべての約束が解決された後、console.log( "async done")文とfunction()文が呼び出されるべきです。しかし、関数は非同期関数が解決される前に呼び出されます。私は間違って何をしているのですか?
のようなテストツールを使用しているときに '' updateEvents'&updateTimeslots'メソッドのコードを追加することができますのlocalStorageを含むテストコードに気をつけろ!彼らは約束を返すのか? –
'var関数'と 'function();'は構文エラーです。 – Bergi
まず、var関数とfunction()でエラーを修正します。それが今働くかどうか私達に教えてください。ブラウザのコンソールに何らかのエラーがある場合、私たちに報告しない場合。 –