return resolve()
sẽ chỉ kết thúc thực thi chức năng như bình thường return
, điều đó chỉ phụ thuộc vào luồng mã của bạn, Nếu bạn không muốn hoặc cần thêm bất kỳ mã nào trong hàm của mình để thực thi, hãy sử dụng return
để thoát chức năng
return new Promise((resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
return resolve(data)
console.log('after return') // won't execute
})
})
chỉ resolve
sẽ tạo ra một nhà nước thành công hứa hẹn, nhưng sẽ thực hiện thực thi mã nếu có bất kỳ khi return
không được sử dụng.
Ghi resolve()
và reject()
tạo trạng thái của lời hứa, họ không thể thay đổi một lần nhà nước được tạo ra, .then
và .catch
xử lý được sử dụng để thực hiện hơn nữa, sử dụng return
hoàn toàn phụ thuộc vào dòng mã của bạn. Nếu bạn không muốn thực thi mã hơn trong khối đó, sau đó return resolve()
return new Promise((resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
resolve(data)
console.log('after return') // will execute
})
})
nó chỉ giống như một return
tuyên bố bình thường trong một function
và không có gì để làm với một lời hứa
Nguồn
2017-02-20 16:18:05
Nó sẽ không tạo sự khác biệt ở đây. – elclanrs
Tôi nghĩ rằng trong trường hợp đầu tiên, bạn có thể chuỗi, nhưng trong trường hợp thứ hai, bạn không thể –