2017-05-12 116 views
0

我需要一些幫助,異步操作,同時處理流

我需要閱讀文件作爲流和第一大塊,我需要建立一個數據庫表,它是一個異步操作。所以我想要做的是創建一個雙工/變壓器流,當我們正在處理文件的開始時它將創建表格,但除此之外,它可以像普通流一樣工作。

作爲一個僞我覺得這樣的事情

fileLoaderService 
    .loadfileAsStream() 
    .pipe(parser) 
    .pipe(
    if !headerProcessed 
     createTable 
    passThrough 
) 
    .pipe(insertToTable) 

這可能嗎?

+0

處理流前要執行的任務,您可以用'控制器start'功能 – guest271314

回答

0

您可以使用控制器的start功能ReadableStreampull

let stream = new ReadableStream({ 
    start(controller) { 
    // create table 
    }, 
    pull(controller) { 
    // enqueue next chunk 
    } 
})