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

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

關于Promise的內存釋放問題

關于Promise的內存釋放問題

慕仙森 2019-02-19 16:11:37
Promise(fun_father)函數里包含了Promise(fun_son)函數,如果fun_father先resolve(),此時fun_son還沒執(zhí)行完,那么fun_son是會繼續(xù)執(zhí)行下去,還是終止?let status= 0const fun_father= () => {    return new Promise((resolve, reject) => {         fun_son().then(() => {             status= 1         })        //例如請求之類的異步方法......             resolve("fun_father done")     })  }const fun_son = () => {    return new Promise((resolve ,reject) => {        //例如請求之類的異步方法......             resolve("fun_son done")     }) } fun_father().then(msg => {    console.log(msg) })在寫項目時碰到這種情況,簡化后就是類似上面一樣,我是希望能打印出"fun_father done",并且status也能改變?yōu)?。 這么寫后,領導和我說如果fun_son執(zhí)行得比fun_father快就沒問題,但是如果反之,則會因為fun_father返回了,內存釋放,fun_son就會終止執(zhí)行。我對此還是有存疑的,但是自己試驗的話沒有好的測試異步方法(循環(huán)沒用),setTimeout 是可以的,但不能完全說明。所以想請教大佬們,這樣的寫法是否可行。
查看完整描述

2 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

首先,Promise的作用是控制異步流程,如果你想要保證打印fun_father done的時候status一定置為1,那么你可以寫成這樣:

let status= 0const fun_father= () => {    return new Promise((resolve, reject) => {
        fun_son().then(() => {
            status= 1
        }).then(() => {            //例如請求之類的異步方法......
            resolve("fun_father done")
        })
    }) 
}const fun_son = () => {    return new Promise((resolve ,reject) => {        //例如請求之類的異步方法......
        resolve("fun_son done")
    })
}

fun_father().then(msg => {    console.log(msg)
})


查看完整回答
反對 回復 2019-02-19
?
四季花海

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

代碼沒有問題啊

查看完整回答
反對 回復 2019-02-19
  • 2 回答
  • 0 關注
  • 703 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號