async lsEntered(){
if(this.service.wd == '')
{
await basic((this.service.wd));
}
else
{
await basic(('/'+this.service.wd));
}
this.files = await JSON.parse(localStorage.getItem('FILENAMES'));
var filesList = document.getElementById(this.trackLine.toString());
var li;
for (var i = 0; i < this.files.length; i++) {
li = document.createElement('li');
li.appendChild(document.createTextNode(this.files[i].name));
filesList.appendChild(li);
}
localStorage.clear();
}
DOMに値を表示する前に、基本操作が完了し、JSON.parseが終了するまで待つ必要があります。非同期が機能していないと私に伝えられるたびに、以前の呼び出しの値が得られます。公平であるためには、私はTS体験のトンを持っていません。この非同期機能で何が問題になっていますか?
編集:これは基本的なことですが、私はそれがjavascriptの機能であり、このアプリに脆弱に統合されているので、対処する必要はないと考えていました。
var basic = function (path) {
var ACCESS_TOKEN = '';
var dbx = new Dropbox({ accessToken: ACCESS_TOKEN });
dbx.filesListFolder({ path: path })
.then(function (response) {
localStorage.setItem('FILENAMES',JSON.stringify(response.entries));
console.log(response);
})
.catch(function (error) {
console.error(error);
});
return false;
}
おそらく 'basic'にエラーがあります。 –
基本は、APIでJS関数を呼び出すことです。本当にそれを使いこなしたくはありません。 – Zachscs
あなたは 'basic'で約束を返していません – MinusFour