2017-07-04 70 views
-1

在8的NodeJS,我尝试插入10条记录诠释的MongoDB动态创建函数的名称,并执行它们

// create company 
await mylib.defaultCompany1SavePromise(); 
await mylib.defaultCompany2SavePromise(); 
await mylib.defaultCompany3SavePromise(); 
await mylib.defaultCompany4SavePromise(); 
await mylib.defaultCompany5SavePromise(); 
await mylib.defaultCompany6SavePromise(); 
await mylib.defaultCompany7SavePromise(); 
await mylib.defaultCompany8SavePromise(); 
await mylib.defaultCompany9SavePromise(); 
await mylib.defaultCompany10SavePromise(); 

它是一种动态创建函数名称和执行呢?

更新1,我可以做这样的事情:

for(let index=1; index<=9; index++) { 
    mylib.defaultCompany{index}SavePromise(); 
} 
+0

行为修改? – JohnnyHK

+0

你能详细说明一下吗?真的不清楚你在这里问什么。你可能是指“使用不同的集合?”或“使用不同的标准?”或者你究竟在问什么? –

+0

请参阅上面的更新1。 – kenpeter

回答

0

创建和执行功能于一体的循环

for (let index = 1; index <= 9; index++) { 
    const fnName = 'defaultCompany' + index + 'SavePromise'; 
    // create function 
    mylib[fnName] = function() { 
     // function body  
    }; 
    // run function 
    mylib[fnName](); 
} 

,或者你可以在另一个循环中执行这些功能。

但在我看来这是更好地传递到index功能,这就是为什么您使用单独的函数为每一个基于index