第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教各位一個問題,求解答:.then的返回值如何被函數(shù)return?求大佬指點!

請教各位一個問題,求解答:.then的返回值如何被函數(shù)return?求大佬指點!

幕布斯6054654 2019-08-14 01:06:08
代碼如下:functionitem(args){varposttitle;letp=newPromise((resolve,reject)=>{hexo.extend.filter.register('after_post_render',function(post){posttitle=post.title;resolve(posttitle);//這里的post是文章的數(shù)據(jù),而post.title則是文章的標(biāo)題...});})p.then((value)=>{console.log(value);})returnvalue;//如何return.then的value值?}需要大家的幫助!~T-T...非常感謝!~
查看完整描述

2 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗 獲得超6個贊

Promise中處理的是一個異步調(diào)用,異步調(diào)用是非阻塞式的,也就是說,你在調(diào)用的時候并不知道它什么時候結(jié)束,當(dāng)然也就不會等到他返回一個有效數(shù)據(jù)之后再進(jìn)行下一步處理。但是——
異步調(diào)用的內(nèi)容是知道什么時候結(jié)束的,它結(jié)束之后可以發(fā)出通知。我們一般使用回調(diào)函數(shù)來獲得這個通知,比如
functionitem(args,callback){//<--注意callback傳入一個處理函數(shù)
//....
p.then((value)=>{
console.log(value);
callback(value);//<--取得值之后通過回調(diào)進(jìn)行下一步處理
});
}
item(blabla,
(value)=>console.log(`got${value}`)//<--這就是上面提到的callback
);
不過除非特殊情況,一般不應(yīng)該把Promise處理成回調(diào),而應(yīng)該直接返回Promise,以便后續(xù)進(jìn)行基于Promise規(guī)范的處理,比如
functionitem(args){//<--它返回一個Promise
//....
returnp.then((value)=>{
console.log(value);
returnvalue;
});
}
//繼續(xù)按Promise規(guī)劃在外面進(jìn)行處理
item.then(value=>console.log(`got${value}`));
這樣寫起來似乎不是很符合常見的同步代碼編寫習(xí)慣,那可以用async/await,具體參考閱讀:
理解JavaScript的async/await
                            
查看完整回答
反對 回復(fù) 2019-08-14
?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗 獲得超7個贊

嗯,我想說的是不能直接在then里面用嗎?
functionitem(){
returnnewPromise(resolve=>{
resolve('aaaa')
}
)
}
item().then(value=>{
console.log(value);
})
或者是你直接用個延時去?。?pre>
                            
查看完整回答
反對 回復(fù) 2019-08-14
  • 2 回答
  • 0 關(guān)注
  • 665 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號