我仍然在努力應對承諾,但由於這裏的社區取得了一些進展。如何在返回函數的變量之前等待承諾完成?
我有一個簡單的JS函數查詢Parse數據庫。它應該返回結果數組,但顯然由於查詢的異步性質(因此是承諾),該函數在結果之前返回,給我一個未定義的數組。
我需要做什麼才能使此功能等待承諾的結果?
這裏是我的代碼:
function resultsByName(name)
{
var Card = Parse.Object.extend("Card");
var query = new Parse.Query(Card);
query.equalTo("name", name.toString());
var resultsArray = [];
var promise = query.find({
success: function(results) {
// results is an array of Parse.Object.
console.log(results);
//resultsArray = results;
return results;
},
error: function(error) {
// error is an instance of Parse.Error.
console.log("Error");
}
});
}
你也可以考慮使用async/await。自7.6版以來,節點現在支持異步/等待開箱即用 –