我想在完全相同的时间内发送两个或多个HTTP请求,我知道这不可能,因为Nodejs是一种单线程语言并且有一个队列。
我创建了事件发射器,并在发出一些东西后添加了5个侦听器 它发送HTTP请求。
const events = require('events');
const eventEmitter = new events.EventEmitter();
const callback = ()=>{
console.log(new Date().getTime());
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())
.then(json => console.log(json));
};
eventEmitter.on('message',callback);
// second request
eventEmitter.on('message',callback);
// third request
eventEmitter.on('message',callback);
// forth request
eventEmitter.on('message',callback);
// fifth request
eventEmitter.on('message',callback);
eventEmitter.emit('message');
这是输出
1559556527258
1559556527276
1559556527277
1559556527278
1559556527280
{ userId: 1, id: 1, title: 'delectus aut autem', completed: false }
{ userId: 1, id: 1, title: 'delectus aut autem', completed: false }
{ userId: 1, id: 1, title: 'delectus aut autem', completed: false }
{ userId: 1, id: 1, title: 'delectus aut autem', completed: false }
{ userId: 1, id: 1, title: 'delectus aut autem', completed: false }
我希望这些请求在完全相同的时间运行。还有其他方法可以在完全相同的时间发送这些请求吗?
答案 0 :(得分:0)
我只是在尝试测试“ MySQL”交易是否能够正常运行,一些用户同时向我的应用发送请求,因此他们使用相同的优惠券代码两次。
可能更简单的第一步是编写一个小型单元测试,以在不使用HTTP消息传递部分的情况下测试您的业务逻辑事务。