Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
fetch
提交
211d5ca7
F
fetch
项目概览
github
/
fetch
8 个月 前同步成功
通知
30
Star
25765
Fork
3216
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fetch
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
211d5ca7
编写于
6月 14, 2016
作者:
T
Tamir Duberstein
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support ArrayBuffer in BodyInit
Fixes #350.
上级
87fd1cd3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
61 addition
and
8 deletion
+61
-8
fetch.js
fetch.js
+17
-8
test/test.js
test/test.js
+44
-0
未找到文件。
fetch.js
浏览文件 @
211d5ca7
...
...
@@ -178,8 +178,12 @@
}
else
if
(
!
body
)
{
this
.
_bodyText
=
''
}
else
if
(
support
.
arrayBuffer
&&
ArrayBuffer
.
prototype
.
isPrototypeOf
(
body
))
{
// Only support ArrayBuffers for POST method.
// Receiving ArrayBuffers happens via Blobs, instead.
if
(
body
.
slice
)
{
this
.
_bodyArrayBuffer
=
new
Uint8Array
(
body
.
slice
(
0
))
}
else
{
this
.
_bodyArrayBuffer
=
new
Uint8Array
(
body
.
byteLength
)
this
.
_bodyArrayBuffer
.
set
(
new
Uint8Array
(
body
))
}
}
else
{
throw
new
Error
(
'
unsupported BodyInit type
'
)
}
...
...
@@ -211,10 +215,6 @@
}
}
this
.
arrayBuffer
=
function
()
{
return
this
.
blob
().
then
(
readBlobAsArrayBuffer
)
}
this
.
text
=
function
()
{
var
rejected
=
consumed
(
this
)
if
(
rejected
)
{
...
...
@@ -231,8 +231,17 @@
}
}
else
{
this
.
text
=
function
()
{
var
rejected
=
consumed
(
this
)
return
rejected
?
rejected
:
Promise
.
resolve
(
this
.
_bodyText
)
return
consumed
(
this
)
||
Promise
.
resolve
(
this
.
_bodyText
)
}
}
if
(
support
.
arrayBuffer
)
{
this
.
arrayBuffer
=
function
()
{
if
(
this
.
_bodyArrayBuffer
)
{
return
consumed
(
this
)
||
Promise
.
resolve
(
this
.
_bodyArrayBuffer
.
buffer
)
}
else
{
return
this
.
blob
().
then
(
readBlobAsArrayBuffer
)
}
}
}
...
...
test/test.js
浏览文件 @
211d5ca7
...
...
@@ -444,6 +444,28 @@ suite('Request', function() {
})
})
featureDependent
(
suite
,
support
.
arrayBuffer
,
'
type ArrayBuffer
'
,
function
()
{
test
(
'
consume as array buffer
'
,
function
()
{
var
text
=
'
name=Hubot
'
var
buf
=
new
ArrayBuffer
(
text
.
length
)
var
view
=
new
Uint8Array
(
buf
)
for
(
var
i
=
0
;
i
<
text
.
length
;
i
++
)
{
view
[
i
]
=
text
.
charCodeAt
(
i
)
}
var
request
=
new
Request
(
''
,
{
method
:
'
POST
'
,
body
:
buf
})
return
request
.
arrayBuffer
().
then
(
function
(
buffer
)
{
var
bufView
=
new
Uint8Array
(
buffer
)
assert
.
equal
(
bufView
.
byteLength
,
view
.
length
)
for
(
var
i
=
0
;
i
<
bufView
.
length
;
i
++
)
{
assert
.
equal
(
bufView
[
i
],
view
[
i
])
}
})
})
})
suite
(
'
type USVString
'
,
function
()
{
test
(
'
consume as text
'
,
function
()
{
var
request
=
new
Request
(
''
,
{
method
:
'
POST
'
,
body
:
'
hello
'
})
...
...
@@ -482,6 +504,28 @@ suite('Response', function() {
})
})
featureDependent
(
suite
,
support
.
arrayBuffer
,
'
type ArrayBuffer
'
,
function
()
{
test
(
'
consume as array buffer
'
,
function
()
{
var
text
=
'
name=Hubot
'
var
buf
=
new
ArrayBuffer
(
text
.
length
)
var
view
=
new
Uint8Array
(
buf
)
for
(
var
i
=
0
;
i
<
text
.
length
;
i
++
)
{
view
[
i
]
=
text
.
charCodeAt
(
i
)
}
var
response
=
new
Response
(
buf
)
return
response
.
arrayBuffer
().
then
(
function
(
buffer
)
{
var
bufView
=
new
Uint8Array
(
buffer
)
assert
.
equal
(
bufView
.
byteLength
,
view
.
byteLength
)
for
(
var
i
=
0
;
i
<
bufView
.
byteLength
;
i
++
)
{
assert
.
equal
(
bufView
[
i
],
view
[
i
])
}
})
})
})
suite
(
'
type USVString
'
,
function
()
{
test
(
'
consume as text
'
,
function
()
{
var
response
=
new
Response
(
'
hello
'
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录