У меня возникли проблемы с асинхронным вызовом Javascript. В приведенном ниже классе автомобилей есть функция move, которая принимает два аргумента, первая - это значение, вторая - функция обратного вызова, которая будет вызываться через 1 секунду, и эта функция обратного вызова принимает значение, возвращаемое вперед способ.Javascript async call
var Car = function() {
this._count = 0;
};
Car.prototype = {
move: function(value, onMoved) {
setTimeout(function() {
onMoved(this.forward(value));
}.bind(this), 1000);
},
forward: function(value) {
this._count = this._count + value;
return this._count;
}
};
Я хочу, чтобы вызвать функцию перемещения, как это:
var values = [1, 2, 3, 4];
var car = new Car();
values.forEach(function(value) {
car.move(value, function(result) {
console.log(result);
});
});
Теперь моя проблема заключается в функции обратного вызова onMoved не ждать 1 секунды, чтобы выполнить между каждым значением, которое он выводит , Как я могу сделать это так, чтобы он ждал между каждым значением, которое он выводит? Мне разрешено использовать underscore.js. Благодарю.
«не ждет выполнения 1 секунды» - Да, это так. – Quentin
Вы спрашиваете, как заставить его ждать ** между ** каждым значением, которое оно выводит? На данный момент он ждет одну секунду после запуска вашего (всего) цикла forEach. – Quentin
@Quentin, да, вы правы, я изменил свой вопрос. – user2914136