これは基本的な流れのようですが、例を見つけることができません。
バックエンドサービスからアイテムのリストをロードするこのカスタムコンポーネントがあります。以下にこの非同期コードを書いてみましたが、letのブラウザで「予期しないトークン」エラーが発生します。
import {customElement, bindable, inject} from 'aurelia-framework';
import {ItemsService} from 'Services/ItemsService';
@customElement('itemslist')
export class ItemsList {
static inject() { return [Element, ItemsService]; }
constructor(element, itemsService) {
this.element = element;
this.itemsService = itemsService;
}
async attached() {
let this.items = await this.itemsService.getItemList();
}
}
アイテムをロードしてView-Modelアイテムプロパティに設定するには、非同期作業をどのように行う必要がありますか?
ありがとう
let
キーワードはローカル変数を宣言するために使用されますthis
。以前は使用できません。を削除するだけlet
です。items
コンストラクターまたはES7構文でプロパティを宣言します。
Babelのasync/await
トランスフォーマーを有効にする必要があります-これを変更してください:
config.js
"babelOptions": {
"optional": [
"es7.decorators",
"es7.classProperties"
]
},
これに:
"babelOptions": {
"optional": [
"es7.decorators",
"es7.classProperties",
"es7.asyncFunctions"
]
},
またはこれ:
"babelOptions": {
"stage": 0
"optional": ["runtime"]
},
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加