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

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

用co庫,yield 后面是否一定要返回一個 promise?

用co庫,yield 后面是否一定要返回一個 promise?

慕俠2389804 2019-02-08 18:23:16
function* gen() {   const res = yield some();   return res;}co(gen);如上,some方法是否一定要返回一個Promise?如果返回Promise,那么res為什么能得到數(shù)值而不是Promise實(shí)例?
查看完整描述

1 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個贊

是的。因?yàn)?yield 后面語句的返回值,是做為 generator.next(data) 的返回值,而傳入的參數(shù) data 才是作為 yield 語句的返回值,這樣設(shè)定才實(shí)現(xiàn)的協(xié)程的效果。通過 next 函數(shù)返回一個 Promise 對象,執(zhí)行器(這里是 Co 模塊)才能實(shí)現(xiàn)自動執(zhí)行 generator 函數(shù)。大致思想如下:


var g = gen() 

// g.next() 執(zhí)行了 yield 后面語句,并返回 Promise 對象

g.next().then(function (data) {

    // 將異步數(shù)據(jù)傳入 next 函數(shù),作為 yield 語句的返回值

    g.next(data)

})

詳細(xì)信息可以看看阮一峰老師的 Es6 教程和 Co 執(zhí)行器的源代碼


查看完整回答
反對 回復(fù) 2019-02-12
  • 1 回答
  • 0 關(guān)注
  • 785 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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