使用 Flutter 打开数据库时出现意外文本 'await'

Unexpected text 'await' when opening database with Flutter

我正在按照 Flutter Dev 网站上的 Persist data with SQLite 教程进行操作,我正在尝试使用 async 打开数据库连接,但我一直收到错误 Unexpected text 'await' .即使我直接从教程中复制代码,我仍然会遇到同样的错误。

这是我的完整文件:

import 'dart:async';

import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';

// Open the database and store the reference.
final Future<Database> database = openDatabase(
    join(await getDatabasesPath(), 'doggie_database.db'),
);

据我所知,我使用的关键字是正确的,为什么编译器会报错?

我正在使用 Dart 2.7.0-dev.2.1 如果这会有所作为。

这似乎是异步性的问题。奇怪的是官方文档中的一个例子导致你犯了这个错误。在需要 async 的方法之外直接分配变量。试试这个:

final Future<Database> database = getDatabasesPath().then((String path) {
  return openDatabase(join(path, 'doggie_database.db'));
});

供将来参考,OP 的代码无法正常工作的原因是因为他 运行 它在 main() Flutter 方法之外,在 Flutter 提供的示例中是异步的文档:https://flutter.dev/docs/cookbook/persistence/sqlite#example