Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 对象存储put语法_Dart_Dart Html - Fatal编程技术网

Dart 对象存储put语法

Dart 对象存储put语法,dart,dart-html,Dart,Dart Html,idb.ObjectStore.put的新语法(r18915)有问题。有人能帮忙吗? 下面的示例导致如下错误: AsyncError:'Error:DataError:DOM IDBDatabase异常0' 堆栈跟踪:#0 ObjectStore._put_2(file:///E:/b/build/slave/dartium-赢得完整中继/构建/src/build/Release/obj/ 全局_intermediate/webkit/bindings/dart/index_db/ObjectS

idb.ObjectStore.put的新语法(r18915)有问题。有人能帮忙吗? 下面的示例导致如下错误:

AsyncError:'Error:DataError:DOM IDBDatabase异常0'
堆栈跟踪:#0 ObjectStore._put_2(file:///E:/b/build/slave/dartium-赢得完整中继/构建/src/build/Release/obj/
全局_intermediate/webkit/bindings/dart/index_db/ObjectStore.dart:141:3)#1
ObjectStore.$dom_put(file:///E:/b/build/slave/dartium-赢得完整的trunc/build/src/build/Release/obj/
全局_intermediate/webkit/bindings/dart/index_db/ObjectStore.dart:137:18)#2
ObjectStore.put(file:///E:/b/build/slave/dartium-赢得完整的trunc/build/src/build/Release/obj/
全局_intermediate/webkit/bindings/dart/index_db/ObjectStore.dart:9:27)
我正在使用的代码可以正常工作,但已针对新版本进行了如下修改:

未来的fDbAddOrUpdateClient(字符串sKey1,ClassClientData clClientData){
idb.Transaction oDbTxn=ogDb1.Transaction(sgStoreClient,'readwrite');
idb.ObjectStore oDbStoreClient=oDbTxn.ObjectStore(sgStoreClient);
Completer Completer=新的Completer();
var oDbReqPut=oDbStoreClient.put(
{'sKey':sKey1,
“sNameTitle”:clClientData.sNameTitle,
“sNameFamily”:clClientData.sNameFamily,
“sNameGiven1”:clClientData.sNameGiven1,
“SNAMAGIVEN2”:clClientData.SNAMAGIVEN2
})
.然后((val){
完成者。完成者(val);
返回;
})
.catchError((e){
window.alert(“${e}”);
返回;
});
}

除了将来指定函数返回但从不返回外,只有完成的值(如其他注释中所述),将来的语法看起来是正确的。错误本身实际上表明传递给objectstore.put命令的数据无效


看。您可能需要验证正在传递到地图的数据。

谢谢您的帮助。主要问题似乎是数据库未打开或相关的东西(如ObjectStore)未创建,但未显示任何错误

希望下面是更好的代码(r19425):


你不应该在某处返回一个
补全符.future
?顺便说一句,Future可以指定一个特定类型,如
Future
  Future future = fDbAddOrUpdateClient(sKey, clClientData)
   .catchError((oError) => window.alert("${oError}"));
}

Future fDbAddOrUpdateClient(String sKey1, ClassClientData clClientData) { 
  idb.Transaction oDbTxn         = ogDb1.transaction(sgStoreClient, 'readwrite');
  idb.ObjectStore oDbStoreClient = oDbTxn.objectStore(sgStoreClient);

  return oDbStoreClient.put(fMapClient(sKey1, clClientData));
}