簡體   English   中英

如何停止使用async-await執行下一個功能?

[英]How to stop executing next function with async-await?

我正在使用這個庫在我的nodejs應用程序中鏈接異步函數: https : //github.com/yortus/asyncawait

var chain = async(function(){

    var foo = await(bar());
    var foo2 = await(bar2());
    var foo3 = await(bar2());

}

因此,bar3等待bar2完成,而bar2等待bar()完成。 沒關系。 但是我該怎么做才能阻止異步塊進一步執行? 我的意思是這樣的:

var chain = async(function(){

    var foo = await(bar());
    if(!foo){return false;} // if bar returned false, quit the async block
    var foo2 = await(bar2());
    var foo3 = await(bar2());

}

處理此問題的最佳方法是什么?

目前,我在bar中拋出異常並以以下方式處理該異常:

chain().catch(function (err) { //handler, ie log message)

它正在工作,但看起來不正確

我的意思是這樣的……

asyncawait 完全支持此語法。 只需從函數return

var chain = async(function(){
    var foo = await(bar());
    if (!foo) return;
    var foo2 = await(bar2());
    var foo3 = await(bar2());
});

暫無
暫無

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

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