#javascript #angularjs
#javascript #angularjs
Вопрос:
Я использовал Promise.все, и я не получаю ни одного обещания в конце, но promise должен принимать кучу отдельных обещаний и возвращать вам одно обещание, верно?
У меня есть цикл for, который будет вызывать метод, который выполняет работу асинхронно. Этот цикл может вызывать метод много раз. После этого цикла у меня есть еще один цикл, который нужно выполнять только тогда, когда все сделано.
function doSomethingAsync(i) {
// do your stuf
setValue(i, function(err, result) {
if (err) {
console.log(err)
} else {
console.log(result)
}
})
}
кто-нибудь может мне здесь помочь. я не уверен, правильна моя реализация или нет.
Ответ №1:
Ваша функция doSomethingAsync
не возвращает никаких обещаний. Вместо этого он использует обратные вызовы. Вы можете обернуть это так.
function doSomethingAsync(i) {
// do your stuf
return new Promise(resolve => {
setValue(i, function(err, result) {
if (err) {
console.log(err);
resolve(err);
} else {
console.log(result);
resolve(result);
}
})
})
}