我正在使用eval
在nodejs應用程序中執行一個字符串作爲javascript代碼。問題是如果字符串包含多個promise,我不知道eval
執行是否完成。如何知道`eval`執行是否完成,如果裏面有多個promise
const userFind = 'function usersFind(db, userAge, userNameLast) {\
const useDb = db.db("test");\
const query = {\
"user.age": { $gt: userAge },\
"user.name.last": userNameLast\
};\
const returnData = new Promise(resolve => {\
const arrayData = useDb.collection("users").find(query).limit(1).toArray();\
resolve(arrayData);\
});\
return returnData;\
}\
let results = usersFind(db, 5, "Lee", 1);\
results.then(r => {\
r.forEach(doc => {\
console.log(JSON.stringify(doc));\
});\
});\
results = usersFind(db, 5, "Lee", 1);\
results.then(r => {\
r.forEach(doc => {\
console.log(JSON.stringify(doc));\
});\
});\
';
上面的腳本定義了一個字符串包含兩個promise。如果我運行下面的代碼:
無需等待承諾eval(userFind)
eval函數返回。 我怎麼知道兩個承諾何時完成?
問題是,爲什麼使用代碼字符串,然後使用'eval'來處理呢? – Rajesh
第一個解決方案:不使用eval? –