使用具有bigquery作业的nodej中的co不会暂停生成器

时间:2017-09-13 13:41:42

标签: node.js ecmascript-6 google-bigquery generator co

co(const levelOneQueries = function*(){
    try{
        var data = yield getResults(queries.sqlQuery1,queries.dest_sqlQ1);
        console.log("Level One Query Output",data);
    } catch(err){
        console.log('Error gettinng results',err);
        throw err;
    }
    return data;
})

const getResults = function* (sqlQuery,destTable){
    console.log('Inside From getResults');
    bigquery.startQuery({
        destination: bigquery.dataset('topshowanalysis').table(destTable),
        writeDisposition: 'WRITE_TRUNCATE',
        allowLargeResults: 'TRUE',
        query: sqlQuery
    }, (err, job) => {
        job.getQueryResults((err, rows) => {
            result = rows;
            console.log("Rows",rows);
            return result;  
        })
    })
};

我正在使用co库暂停此函数/生成器getResults。 哪个目前无法正常工作请帮我这个getResults函数调用bigQuery Query来计算结果并将其保存在目标表中。 我想等到工作完成并创建目标表。

目前bigQuerie的startQuery只给我jobId,我们需要ping它以检查作业是否完成以及是否创建了目标表。

0 个答案:

没有答案