2015-09-20 2 views
0

Я пытаюсь использовать aync программирования Dart с Монго моделиПочему Mongo Dart не вызывает ошибок?

Я смотрю на источник DbCollection и появляется DbCollection.find() возвращает поток https://github.com/vadimtsushko/mongo_dart/blob/master/lib/src/database/dbcollection.dart

Я хочу, чтобы превратить ответ в список карт так что им делать следующее:

try { 
    finder = await collection.find(query); 
} catch(e) { 
    print(e); 
} 

try { 
    list = await finder.toList(); 
} catch(e) { 
    print(e); 
} 

Проблема: 1. Исполнение бомбы из вне collection.find 2. Нет ERRO r находится в ловушке

Вопрос: Есть ли другой подход к работе с этим api, который мне нужно использовать?

ответ

1

Посмотрите на пакет readme. Есть несколько примеров.

Что-то вроде этого нужно сделать:

var collection = db.collection('user'); 
await collection.find(where.lt("age", 18)).toList(); 

Но на самом деле даже с superfluos await он должен работать тоже. Я сделал простой пример с вашим фрагментом, и он работает для меня как есть

import 'package:mongo_dart/mongo_dart.dart'; 
main() async { 
    Db db = new Db('mongodb://127.0.0.1:27017/mongo_dart-test','sample_test'); 
    DbCollection newColl; 
    await db.open(); 
    newColl = db.collection("new_collecion"); 
    await newColl.remove(); 
    await newColl.insertAll([{"a":1}]); 
    var finder; 
    try { 
    finder = await newColl.find(); 
    } catch(e) { 
    print(e); 
    } 
    List list; 
    try { 
    list = await finder.toList(); 
    } catch(e) { 
    print(e); 
    } 
    print(list); 
    await db.close(); 
} 
Смежные вопросы