Ответ 1
return resolve()
просто закончит выполнение функции как обычный return
, который просто зависит от потока вашего кода. Если вы не хотите или не нуждаетесь в каком-либо коде для выполнения вашей функции, используйте return
для выхода из функции
return new Promise( (resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
return resolve(data)
console.log('after return') // won't execute
})
})
только resolve
создаст успешное состояние обещания, но выполнит выполнение кода, если есть, когда return
не используется.
Помните resolve()
и reject()
создать состояние обещания, они не могут быть изменены после создания состояния, обработчики .then
и .catch
используются для дальнейшего выполнения,
использование return
полностью зависит от вашего потока кода. Если вы не хотите выполнять больше кода в этом блоке, то return resolve()
return new Promise( (resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
resolve(data)
console.log('after return') // will execute
})
})
он так же, как и нормальный оператор return
в function
и не имеет ничего общего с обещанием