मेरा अनुमान है कि आप कुछ इस तरह करना चाहते हैं (नोट अनटेस्टेड कोड):
Future<DBObject> load(DBObject object, String id) {
var query = "select ... where id='$id'"; // Note: check for SQL injection.
return pool.query(query)
.then((result) => result.toList())
.then((list) => list.forEach((row) => object.import(row)))
.then((_) => object);
}
क्या आपने यह लेख पढ़ा है फ्यूचर्स का उपयोग करने के बारे में?
मुख्य बिंदु यह है कि यदि कोई विधि एसिंक्रोनस है, और कॉलिंग कोड को इसके पूरा होने की प्रतीक्षा करने की आवश्यकता है, तो उसे फ्यूचर ऑब्जेक्ट (या कुछ मामलों में एक स्ट्रीम) वापस करना होगा। डार्ट में एसिंक्रोनस परिणाम की प्रतीक्षा में "ब्लॉक" करने के लिए फ़ंक्शन प्राप्त करने का कोई तरीका नहीं है। टिप्पणियों में कुछ और प्रश्न पूछने के लिए स्वतंत्र महसूस करें।