我有一个Nodejs服务器,我先加载一个包含长d3.js计算的列表,然后返回客户端,然后加载另一个长列表以预知客户端将获得该列表。
我已经将执行此操作的功能设置为async
,但是它阻止了服务器直到完成。
所以问题是:我如何创建一个不完全阻塞服务器的函数? (就像Java中的线程一样)
代码:
// Load nested data for id client
async function loadNestedData(body) {
table[body.id] = {};
table[body.id] = manager.getLongData(LongDataWithLongName);
}
app.post('/api/dynamic/', (req, res) => {
let body = req.body;
var nested_data = manager.getLongData(LongDataWithLongName);
res.json(nested_data);
loadNestedData(body);
});
app.get('/api/dynamic/id/:id?', (req, res) => {
// If nested data have finish to load
if (manager.getLongData(LongDataWithLongName)[req.params.id]!==undefined)
res.json(manager.getLongData(LongDataWithLongName)[req.params.id]);
else
res.json("wait");
});