return resolve()
wird nur die Ausführung der Funktion als eine normale return
, die nur auf den Fluss Ihres Codes abhängt, wenn Sie nicht wollen oder brauchen mehr Code in Ihrer Funktion auszuführen, dann verwenden Sie eine return
, um die zu beenden
Funktion
return new Promise((resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
return resolve(data)
console.log('after return') // won't execute
})
})
nur resolve
einen erfolgreichen Zustand der Verheißung schaffen, aber die Ausführung von Code ausgeführt werden, wenn es welche gibt, wenn return
nicht verwendet wird.
Denken Sie daran, resolve()
und reject()
den Zustand der Versprechen erstellt haben, können sie nicht mehr geändert werden, sobald der Zustand erzeugt wird, .then
und .catch
Handler für die weitere Ausführung verwendet, return
Verwendung hängt ganz von Ihrem Code-Flow. Wenn Sie wollen, dass es nicht nicht mehr Code in diesem Block ausführen, dann return resolve()
return new Promise((resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
resolve(data)
console.log('after return') // will execute
})
})
es ist einfach wie eine normale return
-Anweisung in einem function
und hat nichts mit dem Versprechen zu tun
Es wird hier keinen Unterschied machen. – elclanrs
Ich denke im ersten Fall können Sie Kette, aber in der zweiten, können Sie nicht –