簡體   English   中英

TypeScript - 在鏈式 function 中傳遞參數

[英]TypeScript - Passing parameter in chained function

在 node.js 中,我正在使用來自child_processexec調用腳本。

當在封閉的 state 中時,我想檢查是否有任何錯誤,以便我可以返回它但是我似乎無法訪問第二個 function on()中的error

有人可以解釋一下我如何傳遞它。

exec('myScript.sh',
        (error: any, stdout: any, stderr: any) => { }).on('close', () => {
            console.log(error)
        })

謝謝。

您需要將其存儲在回調 function 之外。 如果您查看 ES5 等效項:

exec("myScript.sh", function(error, stdout, stderr) {
    // Do nothing
}).on("close", function() {
    // Cannot access error here
});

您可以看到error的 scope 是exec的第二個參數的匿名回調 function 的本地。 您可以在 onclose 回調 function 中訪問它,方法是將其與 function 可訪問的 scope 一起存儲,如下所示:

let execError = "";

exec("myScript.sh", function(error, stdout, stderr) {
    execError = error;
}).on("close", function() {
    console.log(execError);
});

或者在您的原始符號(ES6)中:

let execError: any = "";

exec("myScript.sh", (error: any, stdout: any, stderr: any) => { 
    execError = error; 
}).on("close", () => { 
    console.log(execError); 
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM