NodeJS非同步流程控制簡單介紹

2022-04-19 02:40:37 字數 913 閱讀 5765

有這樣乙個需求,使用者註冊的時候,判斷使用者名稱和郵箱是否已經被占用。

使用者註冊

user.findone(, function (err, doc) , function (err, doc) else

});}else

});

已經巢狀了兩層**,如果是檢查三個字段、四個字段、五個欄位呢?後果不堪設想!

有沒有優雅的實現方法呢?答案是有的!我們用到了async。

很顯然,根據我們的需求,兩次的資料庫查詢判斷並沒有對順序做要求,所以我們選擇asyncparallel:並行執行多個函式,然後做統一的判斷處理。

async.parallel()方法接收兩個引數,乙個是執行的方法組,乙個是**。

async.parallel([

function(callback));

},function(callback));

}], function(err, results)

})

其中第乙個引數,可以是上面那種陣列的形式,也可以是物件的形式:

,

two: function(callback)

}

實現方法:

async.parallel(, function (err, doc) );

},email: function (callback) , function (err, doc) );

}}, function (err, results)

if(results.email)

});

這樣是不是簡潔多了?

mysql流程控制 MySQL 流程控制

流程控制 1 順序結構 程式從上往下依次執行 2 分支結構 多條路徑選擇一條 3 迴圈結構 在規定範圍內重複執行 一 分支結構 1 if函式 功能 實現分支流 語法 if 表示式1,表示式2,表示式3 執行順序 執行表示式1,成立返回表示式2的值,不成立則返回表示式3的值 應用 任何地方 例 if ...

Python流程控制語句流程控制語句

流程控制語句1 if語句 if 語句基本用法 if 表示式 語句塊其中,表示式可以是乙個單純的布林值或變數,也可以是比較表示式或邏輯表示式,如果表示式為真,則執行 語句塊 如果表示式的值為假,就跳 過 語句塊 繼續執行後面的語句。2 if else語句 if else 語句基本用法 if 表示式 語...

python流程控制 python之流程控制

電腦程式在解決某個具體問題時,包括三種情形,即順序執行所有的語句 選擇執行部分的語句和迴圈執行部分語句,這正好對應著程式設計中的三種程式執行結構流程 順序結構 選擇結構和迴圈結構。事實證明,任何乙個能用計算機解決的問題,只要應用這三種基本結構來寫出的程式都能解決。python語言當然也具有這三種基本...