2016-01-05 4 views
1

Я делаю дротик с postgresql, я не могу вернуть данные conn.query (rows). но результаты приходят, как вернуть его, просто кодКак получить данные из conn.query в dart

main(){ 
    someOtherFunc(); 
    } 
    Future add() async{ 
    var uri = 'postgres://postgres:[email protected]:5432/testdb'; 
    var conn = await connect(uri); 
    var sql = 'select * from test'; 
    return conn.query(sql).toList(); 
} 


Future someOtherFunc() async { 
    print(await add()); 
} 

Я получил возвращение как «экземпляр„_Future“!»

ответ

1

Если вы используете await в функции, которую вы называете add() от, вы получите желаемый результат

Future add() async { 
    var uri = 'postgres://postgres:[email protected]:5432/testdb'; 
    var conn = await connect(uri); 
    var sql = 'select * from test'; 
    return conn.query(sql).toList(); 
} 

Future someOtherFunc() async { 
    print(await add()); 
} 

async является заразным. Когда вы вызываете функцию async, вы не можете вернуться к выполнению синхронизации. Все, что зависит от результатов async, должно использовать await (или «старый» .then((value) {})). async + await просто создают иллюзию выполнения синхронизации.

+0

var conn = wait connect (uri); требует async .... Если мы исправили его, он вернул то же самое. – nisar

+0

Извините, вы правы, я недостаточно внимательно смотрел на код. Я обновил свой ответ. –

+0

возвращает тот же результат. Экземпляр «_Future»! – nisar

Смежные вопросы