javascript - Questions sur l'utilisation de Promesse
高洛峰
高洛峰 2017-05-19 10:17:46
0
2
420
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

?
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
Peter_Zhu

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 ! !

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal