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

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

.then的返回值如何被函數(shù)return?

.then的返回值如何被函數(shù)return?

阿晨1998 2019-03-28 21:34:05
代碼如下: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則是文章的標題...});})p.then((value)=>{console.log(value);})returnvalue;//如何return.then的value值?}需要大家的幫助!~T-T...非常感謝!~
查看完整描述

2 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

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

TA貢獻1816條經驗 獲得超4個贊

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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