Javascript 如何使Transcrypt编译为对象而不是dict?
我正在尝试使用Transcrypt的获取API 资料来源:Javascript 如何使Transcrypt编译为对象而不是dict?,javascript,python,dictionary,object,transcrypt,Javascript,Python,Dictionary,Object,Transcrypt,我正在尝试使用Transcrypt的获取API 资料来源: headers = { "Access-Control-Request-Method": "GET", "Access-Control-Request-Headers": "origin, x-requested-with", "Origin": "https://bar.com/" } args = { "method":"OPTIONS", "headers":headers } fetc
headers = {
"Access-Control-Request-Method": "GET",
"Access-Control-Request-Headers": "origin, x-requested-with",
"Origin": "https://bar.com/"
}
args = {
"method":"OPTIONS",
"headers":headers
}
fetch("https://foo.com/",args).then(
lambda response: print(response),
lambda err: print(err)
)
汇编至:
var headers = dict ({'Access-Control-Request-Method': 'GET', 'Access-Control-Request-Headers': 'origin, x-requested-with', 'Origin': 'https://bar.com/'});
var args = dict ({'method': 'OPTIONS', 'headers': headers});
fetch ('https://foo.com/', args).then ((function __lambda__ (response) {
return print (response);
}), (function __lambda__ (err) {
return print (err);
}));
印刷品:
TypeError: Failed to execute 'fetch' on 'Window': Iterator is not an object.
如果我从编译的代码中删除dict
s,它将运行
我怎样才能编译成合适的Javascript对象而不是dict?现在就知道了
事实证明:
通常,Python{…}文本被编译为dict({…})以包括
Python dict的特殊属性和方法,包括
迭代器。当pragma('jsiter')处于活动状态时,Python{…}文本
编译为裸{…},没有特殊属性或方法。到
仍然能够迭代这种简单JavaScript的属性
对象,当pragma('jsiter')处于活动状态时
... 在里面从字面上翻译为JavaScript for(var…in
...). 这个pragma的主要用例是方便地循环
通过元类的新方法中的类属性。作为一个
更灵活但不太方便的选择,pragma(“js”,
可以使用'{}','''.''''''')
因此,代码应该是:
__pragma__('jsiter')
headers = {
"Access-Control-Request-Method": "GET",
"Access-Control-Request-Headers": "origin, x-requested-with",
"Origin": "https://bar.com/"
}
args = {
"method":"OPTIONS",
"headers":headers
}
__pragma__('nojsiter')
现在明白了
事实证明:
通常,Python{…}文本被编译为dict({…})以包括
Python dict的特殊属性和方法,包括
迭代器。当pragma('jsiter')处于活动状态时,Python{…}文本
编译为裸{…},没有特殊属性或方法。到
仍然能够迭代这种简单JavaScript的属性
对象,当pragma('jsiter')处于活动状态时
... 在里面从字面上翻译为JavaScript for(var…in
...). 这个pragma的主要用例是方便地循环
通过元类的新方法中的类属性。作为一个
更灵活但不太方便的选择,pragma(“js”,
可以使用'{}','''.''''''')
因此,代码应该是:
__pragma__('jsiter')
headers = {
"Access-Control-Request-Method": "GET",
"Access-Control-Request-Headers": "origin, x-requested-with",
"Origin": "https://bar.com/"
}
args = {
"method":"OPTIONS",
"headers":headers
}
__pragma__('nojsiter')
您的方法只能包含
GET
或POST
,不允许使用选项
。我不确定如何创建和返回dict
,但args
必须是javascript对象<代码>{method:'GET',headers:{}这是我的问题,为什么Transcrypt编译为dict而不是正确的对象?在获取之前,请执行console.log(args)
以查看其格式是否正确编译的代码是错误的,如果我删除dict
它运行,则您的方法只能包含GET
或POST
,不允许使用OPTIONS
。我不确定如何创建和返回dict
,但args
需要是一个javascript对象<代码>{method:'GET',headers:{}这是我的问题,为什么Transcrypt编译成dict而不是正确的对象?在获取之前,请执行console.log(args)
以查看其格式是否正确如果我删除它运行的dict
,则编译的代码是错误的