Я разрабатываю веб-скребок (на ранних этапах), и я планирую сделать х всадников. Эти вызовы основаны на обещаниях, но я хочу, чтобы звонки были последовательно, когда один заканчивается, следующий начинается.
Как я могу достичь такого поведения?
Вы можете просто сделать что-то вроде:
asyncCall(args[1]).done(() => asyncCall(args[2]))
Здесь asyncCall
- это любая функция, которую вам нужно вызвать. Он принимает некоторые аргументы и возвращает Promise
.
Таким образом, вы в основном ожидаете результата одного вызова и затем вызываете второй вызов.
Однако это может стать довольно громоздким, когда есть много вызовов. Если вы используете async/await
, что вам нужно, учитывая, что вы работаете над новым проектом, вы можете кодировать его гораздо лучше, например:
await asyncCall(args[1]);
await asyncCall(args[2]);
...
Или, еще лучше:
for (let arg of args) {
await asyncCall(arg)
}