Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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
Javascript 如何使Transcrypt编译为对象而不是dict?_Javascript_Python_Dictionary_Object_Transcrypt - Fatal编程技术网

Javascript 如何使Transcrypt编译为对象而不是dict?

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

我正在尝试使用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
}

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
,则编译的代码是错误的