我正在使用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? –