有這樣乙個需求,使用者註冊的時候,判斷使用者名稱和郵箱是否已經被占用。
使用者註冊
user.findone(, function (err, doc) , function (err, doc) else
});}else
});
已經巢狀了兩層**,如果是檢查三個字段、四個字段、五個欄位呢?後果不堪設想!
有沒有優雅的實現方法呢?答案是有的!我們用到了async。
很顯然,根據我們的需求,兩次的資料庫查詢判斷並沒有對順序做要求,所以我們選擇async
的parallel
:並行執行多個函式,然後做統一的判斷處理。
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語言當然也具有這三種基本...