function test() {
return new Promise((resolve, reject)=>{
resolve(123);
});
}
test().then((a)=>{
console.log(a);
}).then(function (b) {
console.log(b);//这行代码被执行了
});
La première méthode paramètre de then doit être exécutée lorsque la promesse est résolue, mais console.log(b) est réellement exécuté Pourquoi
?
Une réponse non sollicitée !
Dans Promise,
.then( func )
会返回一个新的 Promise 实例,这个实例的结果,是把函数体 func 的结果通过执行Promise.resolve()
得到的。所以在你的问题里,console.log(a)
没有返回值,相当于Promise.resolve(null)
得到一个状态为resolved
est une instance Promise, elle passera donc à l'étape suivante.Concernant Promise, je vous recommande de lire mon tutoriel : N façons d'utiliser Promise. Il a une explication très détaillée et peut répondre en gros à toutes les questions sur Promise.
.then(paramètre 1, paramètre 2) Le paramètre 1 est la fonction de rappel de succès (resolve()), le paramètre 2 est la fonction de rappel d'échec (reject()), en raison de la façon dont vous l'écrivez ici, le .then après le la deuxième (la première fonction), sera exécutée et la valeur de b sera affichée comme indéfinie, c'est tout ! !