function test() {
return new Promise((resolve, reject)=>{
resolve(123);
});
}
test().then((a)=>{
console.log(a);
}).then(function (b) {
console.log(b);//这行代码被执行了
});
Kaedah parameter pertama kemudian harus dilaksanakan apabila janji diselesaikan, tetapi console.log(b) sebenarnya dilaksanakan
Balasan tanpa diundang!
In Promise,
.then( func )
会返回一个新的 Promise 实例,这个实例的结果,是把函数体 func 的结果通过执行Promise.resolve()
得到的。所以在你的问题里,console.log(a)
没有返回值,相当于Promise.resolve(null)
得到一个状态为resolved
ialah instance Promise, jadi ia akan meneruskan ke langkah seterusnya.Mengenai Promise, saya mengesyorkan anda membaca tutorial saya: N cara menggunakan Promise Ia mempunyai penjelasan yang sangat terperinci dan pada asasnya boleh menjawab semua soalan tentang Promise.
.then(parameter 1, parameter 2) Parameter 1 ialah fungsi panggil balik kejayaan (resolve()), parameter 2 ialah fungsi panggil balik kegagalan (reject()), kerana cara anda menulisnya di sini, .then selepas yang kedua (fungsi pertama), akan dilaksanakan, dan nilai b dicetak sebagai tidak ditentukan, itu sahaja! !