0
我是一個Node.js程序員。在Node.js 7.6發佈之前,我使用模塊'asyncawait'讓我的代碼處於異步等待樣式。編碼風格如下:有沒有任何可能的方式來使用Node.js 7.6+中沒有異步的內置等待?
var async = require('asyncawait/async');
var await = require('asyncawait/await');
var getData = async(function(finder){
return await(db.collection.findOne(finder));
});
var f = function(finder){
return await(getData(finder));
};
try{
let result = f({id: 1});
}catch(err){
}
在Node.js 7.6發佈後,async-await函數被正式內置。但是異步和等待功能(或稱爲關鍵字?)看起來必須在功能上配對。如果我將我的代碼更改爲,
var getData = async function(finder){
return await db.collection.findOne(finder);
}
var f = function(finder){
return await getData(finder);
};
try{
let result = f({id: 1});
}catch(err){
}
'f'函數中的'await'關鍵字無法識別。除非我將代碼更改爲,
var getData = async function(finder){
return await db.collection.findOne(finder);
}
var f = async function(finder){
return await getData(finder);
};
try{
let result = await f({id: 1});
}catch(err){
}
代碼將是單調乏味的。有沒有任何可能的方式來使用內置的等待,而不是在一個函數中的異步?
那是什麼承諾是。基本上等待回調和異步到承諾,所以你可以輕鬆地切換syncronous和asyncronous代碼。 – GottZ