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

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

如何處理多個API調(diào)用

如何處理多個API調(diào)用

飲歌長嘯 2024-01-18 20:31:55
我目前的代碼可以同時獲取大約五個 API 調(diào)用。有時一切都會成功,但大多數(shù)時候它會返回獲取錯誤。有沒有辦法可以運行 API 調(diào)用而不會出現(xiàn)錯誤?app.post("/movie/:movieName/",function(req,res) {    const Title = req.params.movieName    Promise.all([        fetch("https://api.themoviedb.org/3/movie/" + Title + "/videos?=en-us").then(Videos => Videos.json()),        fetch("https://api.themoviedb.org/3/movie/" + Title + "?&language=en-US").then(Movies => Movies.json()),        fetch("https://api.themoviedb.org/3/movie/" + Title + "/credits?&language=en-US").then(Cast => Cast.json()),        fetch("https://api.themoviedb.org/3/movie/now_playing?&language=en-US&page=2").then(Playing => Playing.json()),        fetch("https://api.themoviedb.org/3/movie/" + Title + "/similar?&language=en-US").then(Similar => Similar.json()),    ])      .then(function(response) {          const Details = response[1]          const Video = response[0].results[0]          const Cast = response[2].cast          const Similar = response[3].results          const Playing = response[4].results          res.render(              "movie",              {                   Details: Details,                   Video: Video,                   Cast: Cast,                   Similar: Similar,                   Playing: Playing               }          )      });});
查看完整描述

1 回答

?
智慧大石

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

我寫這篇文章作為答案只是為了我可以提出一些代碼,您可以運行這些代碼來測試各種理論,因為我們還不知道實際問題是什么。


ETIMEDOUT 并沒有真正告訴我們您收到錯誤的原因。


如果這是一個主要站點,則服務(wù)器不太可能只是性能不佳并且實際上超時了。它可能會因為您一次向它發(fā)送 5 個快速請求而感到不滿,但它確實應(yīng)該給您帶來不同類型的錯誤。


也有可能,您和此 api 服務(wù)器之間的網(wǎng)絡(luò)連接存在某種問題。


要排除快速請求問題,您可以串行發(fā)送請求,在請求之間有短暫的延遲,看看這是否會改變問題。


app.post("/movie/:movieName/", async function(req, res) {

    try {

        const Title = req.params.movieName;


        function fetchCommon(suffix) {

            return fetch("https://api.themoviedb.org/3/movie/" + suffix).then(r => r.json());

        }


        function delay(t) {

            return new Promise(resolve => {

                setTimeout(resolve, t);

            });

        }


        const input = [

            Title + "/videos?=en-us",

            Title + "?&language=en-US",

            Title + "?&language=en-US",

            "now_playing?&language=en-US&page=2",

            Title + "/similar?&language=en-US"

        ];

        const results = [];

        const waitTime = 250;


        for (arg of input) {

            let result = await fetchCommon(arg);

            results.push(result);

            await delay(waitTime);

        }

        const Details = response[1];

        const Video = response[0].results[0];

        const Cast = response[2].cast;

        const Similar = response[3].results;

        const Playing = response[4].results;

        res.render(

            "movie", {

                Details,

                Video,

                Cast,

                Similar,

                Playing

            }

        );

    } catch (e) {

        // always send a response, even if there's an error

        console.log(e);

        res.sendStatus(500);

    }

});

注意:這是調(diào)試問題的第一步。希望您能從運行此代碼中學(xué)到一些東西,然后可以歸零到問題的實際根本原因。


查看完整回答
反對 回復(fù) 2024-01-18
  • 1 回答
  • 0 關(guān)注
  • 245 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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