Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
deno
提交
d43a4be0
D
deno
项目概览
张重言
/
deno
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
deno
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d43a4be0
编写于
12月 01, 2018
作者:
D
DanSnow
提交者:
Ryan Dahl
11月 30, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add Process.output (#1235)
上级
e749b37b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
2 deletion
+30
-2
js/process.ts
js/process.ts
+19
-2
js/process_test.ts
js/process_test.ts
+11
-0
未找到文件。
js/process.ts
浏览文件 @
d43a4be0
...
...
@@ -2,9 +2,11 @@
import
*
as
dispatch
from
"
./dispatch
"
;
import
*
as
flatbuffers
from
"
./flatbuffers
"
;
import
*
as
msg
from
"
gen/msg_generated
"
;
import
{
assert
,
unreachable
}
from
"
./util
"
;
import
{
close
,
Fil
e
}
from
"
./files
"
;
import
{
File
,
clos
e
}
from
"
./files
"
;
import
{
ReadCloser
,
WriteCloser
}
from
"
./io
"
;
import
{
readAll
}
from
"
./buffer
"
;
import
{
assert
,
unreachable
}
from
"
./util
"
;
/** How to handle subsubprocess stdio.
*
...
...
@@ -59,6 +61,21 @@ export class Process {
return
await
runStatus
(
this
.
rid
);
}
/** Buffer the stdout and return it as Uint8Array after EOF.
* You must have set stdout to "piped" in when creating the process.
* This calls close() on stdout after its done.
*/
async
output
():
Promise
<
Uint8Array
>
{
if
(
!
this
.
stdout
)
{
throw
new
Error
(
"
Process.output: stdout is undefined
"
);
}
try
{
return
await
readAll
(
this
.
stdout
);
}
finally
{
this
.
stdout
.
close
();
}
}
close
():
void
{
close
(
this
.
rid
);
}
...
...
js/process_test.ts
浏览文件 @
d43a4be0
...
...
@@ -176,3 +176,14 @@ testPerm({ run: true }, async function runStderrPiped() {
assertEqual
(
status
.
signal
,
undefined
);
p
.
close
();
});
testPerm
({
run
:
true
},
async
function
runOutput
()
{
const
p
=
run
({
args
:
[
"
python
"
,
"
-c
"
,
"
import sys; sys.stdout.write('hello')
"
],
stdout
:
"
piped
"
});
const
output
=
await
p
.
output
();
const
s
=
new
TextDecoder
().
decode
(
output
);
assertEqual
(
s
,
"
hello
"
);
p
.
close
();
});
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录