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

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

Node.js http.get的返回結(jié)果,怎么傳到外面?

Node.js http.get的返回結(jié)果,怎么傳到外面?

UYOU 2018-09-14 10:09:34
function requestOrderAPI(name,floor){    let re = '';     let url = 'http://此處省略/reservations/plus1?name=' + qs.escape(name) +'&location='+floor;        http.get(url,(res)=>{        res.setEncoding('utf8');        let rawData = '';        res.on('data', (chunk) => rawData += chunk);        res.on('end', () => {            re = rawData;        });    });    return name + ':' + re;//異步的原因拿不到re的值}我想讓requestOrderAPI(name,floor)這個函數(shù)返回re。有什么好的辦法嗎?應(yīng)該怎么做哪?
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

同步思維轉(zhuǎn)異步的問題。。。
如果代碼寫成這樣你就能看明白了

function requestOrderAPI(name,floor){    let re = ''; 
    let url = 'http://此處省略/reservations/plus1?name=' + qs.escape(name) +'&location='+floor;    
    return new Promise(function(resolve, reject) {
        http.get(url,(res)=>{
            res.setEncoding('utf8');            let rawData = '';
            res.on('data', (chunk) => rawData += chunk);
            res.on('end', () => {
                resolve(re);
            });
        });
    });
};async function test () {    let re = await requestOrderAPI(name, floor);    console.log(name + ' ' + re);
}

test();

javascript部分中大部分方法都是異步回調(diào)的方法,你想要的功能只能通過callback去實現(xiàn)?;蛘咄ㄟ^一些promisecoasync/await之類的方式去優(yōu)化一下異步回調(diào),但是本質(zhì)上他依然是一個異步回調(diào)。這個是解決不了的。這個是語言特性。


查看完整回答
反對 回復(fù) 2018-10-30
  • 1 回答
  • 0 關(guān)注
  • 1637 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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