作為我正在做的一些編碼實踐的一部分,我有以下代碼:
var promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('hello world');
}, 2000);
});
var promiseTwo = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('hello again!');
}, 2000);
});
promise.then(promiseTwo).then((data) => {
console.log(data)
})
記錄資料時,它會讀取hello world而不是hello again!. 這是為什么?我的想法是,該行將promise.then(promiseTwo).then((data) => { console.log(data) })
解決第一個承諾,然后將第二個承諾作為回呼傳遞,該回呼將決議為hello again!. 為什么決議promiseTwo永遠不會從.then方法中得到回傳?
uj5u.com熱心網友回復:
因為您沒有回傳promiseTwoin then,所以您只是在呼叫它,請嘗試:
var promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('hello world');
}, 2000);
});
var promiseTwo = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('hello again!');
}, 2000);
});
promise.then(() => promiseTwo).then((data) => {
console.log(data)
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/482410.html
標籤:javascript es6-承诺
上一篇:IL2CPP執行緒池作業者(54):EXC_BAD_ACCESS(代碼=1,地址=0x10)
下一篇:如何使用索引陣列來導航物件陣列
