未来的Completer.future

时间:2013-02-08 12:51:18

标签: dart indexeddb

有人可以向我解释以下代码有什么问题。 第.then((result) {window.alert("Record = ${oDbRec}");})行显示以下内容:

  

记录='_ThenFuture @ 0x2900bd4a'的实例

我想要的是getObject()的结果。代码:

fHtmDisplayOneClient(String sKey) {
  var oDbRec;
  oDbRec = fDbSelectOneClient(sKey)
   .then((result) {window.alert("Record = ${oDbRec}");})
    ..catchError((oError) {window.alert("Error from fDbSelectOneClient. ${oError}");
    });
}
Future fDbSelectOneClient(String sKey) {
  var completer = new Completer();
  idb.Transaction oDbTxn      =   ogDb1.transaction(sgTblClient, 'readwrite');
  idb.ObjectStore oDbTable    =   oDbTxn.objectStore(sgTblClient); 
  idb.Request     oDbReqGet   =   oDbTable.getObject(sKey);
  oDbReqGet.onSuccess.first.then((val)  => completer.complete(oDbReqGet.result));
  oDbReqGet.onError.first.then((err)    => completer.completeError(err));
  return completer.future; // return the future
}

1 个答案:

答案 0 :(得分:1)

我认为你想要未来的回报,即传递给'.then()的'结果'对象

.then((result) => print('$result'));