gpt4 book ai didi

dart - JS Interop编译为javascript时出现问题

转载 作者:行者123 更新时间:2023-12-03 03:29:25 25 4
gpt4 key购买 nike

我正在使用Parse.com作为服务器解决方案。我正在dart.html header 部分加载其framework.js。

首先,一切(CRUD)在Dartium中都运行良好。
现在,我的目标是使其也可以编译为javascript。

我需要做的第一件事是使登录工作。用于初始化和登录的Parse JS如下:

Parse.initialize("appid", "appkey");

Parse.User.logIn("myname", "mypass", {
success: function(user) {
// Do stuff after successful login.
},
error: function(user, error) {
// The login failed. Check error to see why.
}
});

这是我在Dart中进行的最新尝试。我没有使用缩小选项。

import 'dart:html';
import 'package:web_ui/web_ui.dart';
import 'package:js/js.dart' as js;

void main() {

js.context.Parse.initialize("appid", "appkey");

js.context.Parse.User.logIn("myname","mypass", js.map({
"success": new js.Callback.once((user){
print("success");
}),
"error": new js.Callback.once((user, error){
print("error");
}),
}));
}

它在Dartium中运行良好,并打印“成功”。

当编译为javascript时,我在Safari中收到此错误:JSON.stringify无法序列化循环结构。

Google Chrome控制台中的完整错误如下所示:

未捕获的TypeError:将圆形结构转换为JSON js.dart:1043
$ .Proxy__forward js.dart:1043
$$。Proxy.noSuchMethod $ 1 js.dart:1033(匿名函数)
$ .main tabort.dart:21
$ .main0 tabort.html_bootstrap.dart:8
$$ ._ IsolateContext.eval $ 1isolate_helper.dart:265
$ .startRootIsolateisolate_helper.dart:89(匿名函数)tabort.html_bootstrap.dart.js:13949

帮助,或指出正确的方向,将不胜感激!

编辑:下载了最新的连续版本:0.1.2_r22610。 现在一切正常!

最佳答案

与此JS代码相对应的Dart代码:

Parse.User.logIn("myname", "mypass", {
success: function(user) {
// Do stuff after successful login.
},
error: function(user, error) {
// The login failed. Check error to see why.
}
});

是:

js.context.Parse.User.logIn("myname", "mypass", js.map({
'success': new js.Callback.once((user) {
// Do stuff after successful login.
}),
'error': new js.Callback.once((user, error) {
// The login failed. Check error to see why.
})
}));

如果将Dart代码编译为JS,则不要使用--minify选项,因为 issue 9283

编辑:您的问题(JSON.stringify无法序列化循环结构)应该从r22598开始消失(请参阅 https://groups.google.com/a/dartlang.org/d/msg/misc/zZ8Sx5rojis/UddCmmnaYTkJ)

关于dart - JS Interop编译为javascript时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com